- 1. 概要
- 2. 設定
1. 概要
サイト内のページが、10 や 20、2桁の間はルーティングに関する情報も。
routes/web.php
1ファイルで、収まりがつきますが、3桁、4桁を超えてくると 1ファイルで書くには長すぎるし、どこに何が書いてあるんだか整理できなくなります。
そうなると、ファイルを分割してメンテナンスしていきたいと思うのは、人情です。
「Laravel」には、その方法も用意されいているのですが、どうもバージョンによって、対象方法が違うようです。
わたしが、試したのは「Laravel Framework 8.30.1」になりますが、下記のサイトの方法が適用できました。
「【Laravel】route web.php 分ける - かまてく ブログ」
この方法は、「Laravel Framework 10.*」までうまく行きました。
2. 設定
例えば、「routes/web.php」の内容の1部を。
routes/extra.php
に分けて書くとして。
app/Providers/RouteServiceProvider.php
の。
/**
* Define your route model bindings, pattern filters, etc.
*
* @return void
*/
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
});
}
の部分を変更します。
48行と49行との間に、下記のように書き入れるだけです。
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/extra.php'));
});
更に、サブディレクトリに分けることも可能で。
routes/etc/extra.php
と作成して、「app/Providers/RouteServiceProvider.php」に。
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/etc/extra.php'));
});
と書くだけです。
|