【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


この記事が気に入ったらサポートをしてみませんか?