PHP - Laravel - ルーティング - 分割 10.*


クラウディア 


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'));
        });
 と書くだけです。

AbemaTV 無料体験