すごい久しぶりにqiita。
久しぶりにLaravel触ろうと思ったらLaravel8が出てて、試してみる。
Laravel7以前のと比べてRouteの書き方変わってたのでメモ。
(ぜんぜん大した話じゃないけどまだインターネッツに残っていないと思ったものは積極的に残すスタイル。)
前提: 今までの書き方
Route::get('hoge/fuga', 'Hoge\FugaController@index');
Laravel7までは有効。Laravel8ではエラーになります。
1: 教科書どおりがいい派
use App\Http\Controllers\Hoge\FugaController;
Route::get('hoge/fuga', [FugaController::class, 'index']);
使うクラスはすべてuseで指定しておいたほうが見通しがいい人向け。
2: useうざい派
Route::get('hoge/fuga', [App\Http\Controllers\Hoge\HugaController::class, 'index']);
useはなくして、並んだ絶対パス眺めるのが好きな人向け。
3: 前みたいにシンプルに書きたい派
Route::get('hoge/fuga', '\App\Http\Controllers\Hoge\FugaController@index');
Laravel8での新作法に違和感を感じる人向け
4: 完全に前のに戻したい派
app/Providers/RouteServiceProvider.php
を変更する必要があり、コメントアウトされている
// protected $namespace = 'App\\Http\\Controllers';
のコメントアウトを外して有効にする。
Route::get('hoge/fuga', 'Hoge\FugaController@index');
で以前と変わらない書き方ができる。
ぼくは2です。
いじょー!