- 1. 概要
- 2. Laravel 10.* 以前
- 3. Laravel 11.* 以降
- 4. わたしはこう書いた
1. 概要
前ページに加えて、さらに知らんのですが。
ミドルウェアグループなるものもあるらしい。
本ページは、下記のサイトを参考にさせていただきました。
「12.x ミドルウェア Laravel」
「Laravel11 以降のミドルウェアの設定の書き方」
まだ(2025年4月17日)よう知らんので、本ページは、ほぼ、参考サイトのパクリです。
2. Laravel 10.* 以前
「Laravel Framework 10.48.29」では。
app/Http/Kernel.php
に下記のように記述されています。
/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
\Illuminate\Routing\Middleware\ThrottleRequests::class.':api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
32~39行の間または41~45の間に、行を加えることにより、グループミドルウェアを追加できるようです。
3. Laravel 11.* 以降
前ページと同様。
bootstrap/app.php
に記述するらしい。
「Laravel Framework 12.9.2」だと、下記のようになっています。
<?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();
参考サイトによれば。
use App\Http\Middleware\AAA;
use App\Http\Middleware\BBB;
->withMiddleware(function (Middleware $middleware) {
// webミドルウェアグループの最後に追加
$middleware->group('web2' [
AAA::class,
BBB::class,
]);
})
てな感じで追加するらしい。
これも、参考サイトの通りにはいかず、次項に述べますが・・・。
4. わたしはこう書いた
「Laravel Framework 10.48.29」では。
app/Http/Kernel.php
に。
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array<int, class-string|string>
*/
protected $middleware = [
\App\Http\Middleware\TrustProxies::class,
・・・ 略 ・・・
];
/**
* The application's route middleware groups.
*
* @var array<string, array<int, class-string|string>>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
・・・ 略 ・・・
],
'api' => [
\Illuminate\Routing\Middleware\SubstituteBindings::class,
・・・ 略 ・・・
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array<string, class-string|string>
*/
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
・・・ 略 ・・・
];
}
と書いていたものを「Laravel Framework 12.9.2」では。
bootstrap/app.php
に、下記のように書いて、うまくいきました。
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'auth' => \App\Http\Middleware\Authenticate::class,
・・・ 略 ・・・
]);
$middleware->use([
\App\Http\Middleware\TrustProxies::class,
・・・ 略 ・・・
]);
$middleware->appendToGroup('web', [
\App\Http\Middleware\EncryptCookies::class,
・・・ 略 ・・・
]);
$middleware->appendToGroup('api', [
\Illuminate\Routing\Middleware\SubstituteBindings::class,
・・・ 略 ・・・
]);
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();
|