【Laravel8.x】アプリごとにroute定義ファイルを設ける(分割)する
・1つのRoute定義ファイルの肥大化を防ぐ。
・新たなアプリを追加する際に、他の稼働中のアプリへの影響を極力減らしたい。
こんなニーズに対応するため、route定義ファイルをアプリ毎に定義する方法をまとめる。認証機能のあり/なしによって対応する内容が異なる。
※認証機能については、Breezeを使用します。
環境及び前提
レンタルサーバー:さくらインターネット
プラットフォーム:Laravel 8.6.8
PHP:7.4.15
新規アプリ:「demo」※実体ファイルは、demoフォルダの中に格納する
参考サイト:
・Laravelでroute定義ファイルを分割する
・[Laravel]ルーティングファイルを分割して管理する
【共通】1.route定義ファイルを追加
demo/web.phpを新たに作成する。
<?php
use Illuminate\Support\Facades\Route;
Route::get('/', function() {
return 'This is admin page.";
【共通】2.サービスプロバイダにroute定義ファイルを登録
routeを司るサービスプロバイダ:app/Provieders/RouteServiceProvider.php
このbootメソッドにある、$this->routes();のコールバックfunctionにdemoのRouteを渡す。
$this->routes(function() {
Route::prefix('api')
->middleware('api')
->group(base_path($this->namespace)
->group(base_path('routes/api.php'));
Route::middleware('web')
->namespace($this->namespace)
->group(base_path('routes/web.php'));
Route::prefix('demo')
->name('demo.')
->middleware('web')
->namespace($this->namespace)
->group(base_path('routes/demo/web.php'));
▶ルーティング確認
php artisan route:list
表示されるルーティングテーブルを確認し、正しく設定されているの確認してください。
・URI列の先頭にprefixに記載した内容
・Name列の先頭にnameで指定した内容
webとは違うmiddleware群を設置したい場合は、app/Http/Kernel.phpの$middlewareGroupsに新しくmiddleware群を定義すればOK
この記事が気に入ったらサポートをしてみませんか?