Laravelで開発をしていると、システムの成長とともにルーティングのファイルが肥大してくることはよくあるかと思います。
標準ではweb.phpにどんどん追記していくかと思いますが、個人的にはあまり好きではありません。
(もちろん、1つにまとまっていてわかりやすいという意見もありますよね。)
今回はweb.phpだけでなく、他のファイルも指定できるようにする方法をご紹介します。
目次
RouteServiceProviderを設定する
まずはweb.phpがどのようにして設定されているか確認します。
RouteServiceProvider.phpファイルを見ると、以下のような記載があります。
public function boot(): void
{
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));
Route::middleware('web')
->group(base_path('routes/web.php')); // 標準で設定されている
});
}
何となく気づくかと思いますが、
->group(base_path('routes/web.php'))
が大事なところです。
例として、管理者画面と一般ユーザーが見る画面を分けるという意味で、以下のように記載したとしましょう。
->group(base_path('routes/web.php'))
->group(base_path('routes/admin.php'));
routes/admin.phpファイルを作成する
あとは特に説明するまでもありませんが、routesディレクトリ内にadmin.phpファイルを作成するだけです。
書き方はweb.phpなどと同じなので割愛します。