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


 クラウディア


1. 概要
2. 方法
3. bootstrap/app.php

1. 概要

 ルーティングを記載するファイルを分割して、それを読み込ませる方法は、「Laravel Framework 10.*」までと「Laravel Framework 11.*」以降で異なるようです。  わたしは、「Laravel Framework 11.*」は、試していないのですが。  「Laravel Framework 12.*」でやってみました。  本ページは、下記のサイトを参考にさせていただきました。
Laravel11 以降から使い始めた人に必要そうな質問と回答一覧

2. 方法

 何しろ、「Laravel Framework 10.*」までで、編集していた。

app/Providers/RouteServiceProvider.php
 というファイルがないので、戸惑いましたが。  方法は、いくつかあるようです。  すなわち。

bootstrap/app.php
 を書き換える方法として、2つ。

config/app.php
 に、「providers」というモジュールを追加する方法が1つあるらしい。  これは、ようわかっていません。

3. bootstrap/app.php

 わたしは、「bootstrap/app.php」を書き換える方法のうち、ひとつを採用して、うまくいきました。  「Laravel Framework 12.3.0」オリジナルの状態の「bootstrap/app.php」がこれです。

<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        //
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();
 前ページと同様。

routes/extra.php
 にルーティングを記載しているものとして、7~12行を下記のように、書き換えます。

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        commands: __DIR__.'/../routes/console.php',
        using: function () {
                Route::middleware('web')->group(__DIR__.'/../routes/web.php');
                Route::middleware('web')->group(__DIR__.'/../routes/extra.php');
        },
    )
 ファイルが複数あれば、12行に続けて挿入していけばいいし。  「routes」の下にサブディレクトリを作成しても、その通りにかけます。

AbemaTV 無料体験