Twinkle
Laravelでは短く書くためのエイリアスがよく使われている
Route::middleware(['auth:sanctum', 'verified'])
auth
やverified
はエイリアス。:sanctum
部分はミドルウェアパラメーター。
Laravel11ではここで定義されている。
https://github.com/laravel/framework/blob/273b41ad4847ef036c9dc2a0537831bca2de687e/src/Illuminate/Foundation/Configuration/Middleware.php#L734
/**
* Get the default middleware aliases.
*
* @return array
*/
protected function defaultAliases()
{
$aliases = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
明確にmiddleware aliasesと説明されているのでこれはエイリアス。
エイリアスを使わない場合の使い方はこのように長くなるのでエイリアスで短く書けるようにしている。
use Illuminate\Auth\Middleware\Authenticate::class;
use Illuminate\Auth\Middleware\EnsureEmailIsVerified::class;
Route::middleware([Authenticate::class.':sanctum', EnsureEmailIsVerified::class])
Laravel標準のミドルウェアはエイリアスで短く書けばいいけどプロジェクト独自のミドルウェアはエイリアス登録せずにそのまま使えばいい。
Facadeのエイリアス
Facade自体がそもそもエイリアスの役割だけどそのFacadeも短く使えるようにエイリアス登録されている。
use Illuminate\Support\Facades\App;
use App;
とはいえ今はuse App;
で使うことは推奨されてない。基本はuse Illuminate\Support\Facades\App;
で指定して使う。公式ドキュメントからは完全に一掃されている。例外はグローバル空間なBlade内くらい。
短いFacadeが使われてたのはLaravel4からLaravel5への移行期だけ。
よく勘違いされていること
「ミドルウェアやFacadeはエイリアス登録しないと使えない」という勘違いがかなり多い。
エイリアス登録しなくてもAuthenticate::class
で直接使うのが基本。
エリアスはあくまでも短く書けるようにしてるだけなので必須ではない。
「フレークワーク側」と「プロジェクト側=ユーザーランド」では話の前提が違う。
プロジェクトで一度しか使われてないミドルウェアを短く書けてもメリットがない。
https://laracasts.com/discuss/channels/livewire/no-understood-what-line-saymiddleware