Laravel11で独自のMiddelwareを指定する

2024.05.28 09:00
2024.05.24 15:18
Laravel11で独自のMiddelwareを指定する

Laravelはバージョン11からMiddlewareの書き方が変わりましたので、
新しいやり方をメモしてみます。

まずはMiddlewareを作成します。
場所はどこでもいいですが、「app/Http/Middleware」にします。
そこにHogeMiddleware.phpを作成します。

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class HogeMiddleware
{
    public function handle(Request $request, Closure $next)
    {
        // 処理をここに書く

        return $next($request);
    }
}

独自で作成したMiddlewareは自分で登録する必要があります。
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) {
        // 独自のMiddlewareを登録
        $middleware->web(append:[
            App\Middleware\HogeMiddleware::class,
        ]);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

これで完了です。

今回は以上です!