Laravel8以降でルーティングがうまくいかない件


Laravel8.Xからrouteの記述方法が変わって面倒になったかもしれません。(自分でも検証済み)
Laravel7.X以前→Laravel8.X以降はエラーになったと思ったが、解決した件。

route/web.php

Route::get('/', 'TestController@index');

laravel8.X以降はこのようにしないとうまく行かなかった。。
route/web.php

use App\Http\Controllers\TestController;
Route::get('/',[TestController::class, 'index']);

しかし、Laravel8でも、app/Providers/RouteServiceProvider.php の bootメソッドでnamespaceを指定すればこれまで通りの動作をすることがわかった。
(土日にも関わらず、疑問に対応いただいた私の上司に感謝。。)

app/Providers/RouteServiceProvider.php

public function boot()
    {
        $this->configureRateLimiting();
        $this->routes(function () {
            Route::middleware('web')
                ->namespace('App\Http\Controllers')   ← 【これを足す】
                ->group(base_path('routes/web.php'));
            Route::prefix('api')
                ->middleware('api')
                ->group(base_path('routes/api.php'));
        });
    }

これで今まで通り(Laravel7以前のようにルーティングがうまくいく)
routes/web.php

Route::get('/test', 'TestController@index');

以上