Laravel 11 升级后,app/Providers/AppServiceProvider.php 的 register() 方法被废弃、boot() 不再自动调用;config/app.php 中 'providers' 数组移除 PaginationServiceProvider 等旧服务提供者,'aliases' 删除 Form/Html;bootstrap/app.php 成为唯一启动入口,取代旧版 app/Http/Kernel.php 的中间件组与路由注册逻辑。

想快速定位 Laravel 11 升级后哪些配置文件、骨架结构或默认类被删改,避免手动逐行比对官方 changelog 或原始模板?你需要的不是阅读文档,而是能直接告诉你 app/Providers/AppServiceProvider.php 哪里少了 boot() 调用、config/app.php 哪几行被移除、bootstrap/app.php 是否已彻底消失的差异快照工具。
用 laravel-diff 快速生成版本间文件差异
安装专用 CLI 工具:运行 composer require laravel/diff --dev,它会自动注册 php artisan diff:compare 命令。
执行对比前必须先拉取目标版本原始骨架:运行 php artisan diff:fetch 11.0,该命令从 laravel/laravel 官方仓库下载纯净的 Laravel 11.0 起始模板并缓存到 storage/app/laravel-diff/11.0/。
生成当前项目与 Laravel 11 默认结构的差异报告:运行 php artisan diff:compare --target=11.0 --output=diff-11-report.html,输出 HTML 格式高亮报告,双击即可在浏览器中查看带行号的增删标记。
重点盯防三类高风险差异项
方法一:骨架目录结构性删除(Laravel 11 默认不生成)
检查报告中是否出现 【app/Http/Controllers】、【app/Http/Middleware】、【app/Console/Commands】 目录被整体标为「deleted」——这不是 bug,是 Laravel 11 的轻量设计。若你项目依赖这些目录,必须手动创建,并在 bootstrap/app.php 中显式注册服务提供者,否则 php artisan make:controller 会报 Class not found。
方法二:配置文件关键段落消失
在 config/app.php 差异块中,确认 【'providers' 数组中 Illuminate\Pagination\PaginationServiceProvider::class 等旧服务提供者已被移除】;若你仍手动注册它们,应用启动时将抛出 RuntimeException。同时注意 'aliases' 里 Form 和 Html 别名已彻底消失,Laravel 11 不再内置表单构建器。
方法三:核心启动文件重构
bootstrap/app.php 在 Laravel 11 中已完全移除,全部逻辑迁移至 bootstrap/app.php 的返回值链式调用中。差异报告若显示该文件为「deleted」,说明你尚未运行 php artisan upgrade,必须立即补上这步,否则 APP_KEY 加载、容器绑定等基础功能全部失效。
手动验证差异结果的三个必查点
第一步:打开 diff-11-report.html,搜索关键词 middlewareGroups,确认 app/Http/Kernel.php 中 $middlewareGroups['web'] 是否已移除 EncryptCookies::class 和 AddQueuedCookiesToResponse::class —— 若你的登录态或 session 依赖 cookie 加密,必须手动加回,否则用户无法保持登录。
第二步:搜索 database/factories,检查所有工厂文件是否从类定义(class UserFactory extends Factory)变为闭包写法(use function Laravel\Sanctum\factory;)。旧写法在 Laravel 11 下直接报错 Class "UserFactory" not found,且不会触发任何 warning。
第三步:搜索 config/cache.php,核对 'default' => 'file' 是否仍存在。Laravel 11 强制要求使用 cache.store 配置项替代旧键名,漏改会导致 Cache::get() 返回 null 而不报错,埋下隐蔽数据空值隐患。


















