Help us understand the problem. What is going on with this article?

Laravel8でのルーティングで、コントローラーの指定の仕方4選

すごい久しぶりに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\Api\TokenController@index');

Laravel8での新作法に違和感を感じる人向け

4: 完全に前のに戻したい派

app/Providers/RouteServiceProvider.php
を変更する必要があり、コメントアウトされている

// protected $namespace = 'App\\Http\\Controllers';

のコメントアウトを外して有効にする。

Route::get('hoge/fuga', 'Hoge\FugaController@index');

で以前と変わらない書き方ができる。


ぼくは2です。
いじょー!


gree
インターネットを通じて、世界をより良くする。
http://gree.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away