Laravel 12 更新与之前版本结构变更清单
🧩 1. App\Http\Kernel 被移除
-
Laravel 12 不再默认生成
app/Http/Kernel.php
。 -
系统改为使用框架内的
Illuminate\Foundation\Configuration\Middleware
来配置全局中间件、别名中间件、组中间件。
✅ 替代方式:
在 bootstrap/app.php
中,会使用如下方式注入内核:
$app->useConfiguration(function (\Illuminate\Foundation\Configuration\Application $app) {$app->withMiddleware(function (\Illuminate\Foundation\Configuration\Middleware $middleware) {$middleware->alias(['auth' => \App\Http\Middleware\Authenticate::class,// ...]);$middleware->group('web', [\App\Http\Middleware\EncryptCookies::class,// ...]);});
});
🧾 2. 中间件注册方式变化
不再使用 $middlewareGroups
, $routeMiddleware
等属性。而是通过 configure()
回调中显式调用:
$middleware->alias(['auth' => \App\Http\Middleware\Authenticate::class,
]);$middleware->group('web', [\App\Http\Middleware\EncryptCookies::class,// ...
]);
这让中间件配置更加函数式、模块化,不依赖 Kernel 的类属性。
🏗️ 3. 引导配置集中化:全靠