Laravelでは短く書くためのエイリアスがよく使われている ==== ```php Route::middleware(['auth:sanctum', 'verified']) ``` `auth`や`verified`はエイリアス。`:sanctum`部分はミドルウェアパラメーター。 Laravel11ではここで定義されている。 https://github.com/laravel/framework/blob/273b41ad4847ef036c9dc2a0537831bca2de687e/src/Illuminate/Foundation/Configuration/Middleware.php#L734 ```php /** * Get the default middleware aliases. * * @return array */ protected function defaultAliases() { $aliases = [ 'auth' => \Illuminate\Auth\Middleware\Authenticate::class, ``` 明確に**middleware aliases**と説明されているのでこれはエイリアス。 エイリアスを使わない場合の使い方はこのように長くなるのでエイリアスで短く書けるようにしている。 ```php use Illuminate\Auth\Middleware\Authenticate::class; use Illuminate\Auth\Middleware\EnsureEmailIsVerified::class; Route::middleware([Authenticate::class.':sanctum', EnsureEmailIsVerified::class]) ``` Laravel標準のミドルウェアはエイリアスで短く書けばいいけどプロジェクト独自のミドルウェアはエイリアス登録せずにそのまま使えばいい。 ### Facadeのエイリアス Facade自体がそもそもエイリアスの役割だけどそのFacadeも短く使えるようにエイリアス登録されている。 ```php use Illuminate\Support\Facades\App; use App; ``` ここで定義。 https://github.com/laravel/framework/blob/273b41ad4847ef036c9dc2a0537831bca2de687e/src/Illuminate/Support/Facades/Facade.php#L270 とはいえ今は`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