升级 Laravel 后必须运行 composer dump-autoload -o 更新自动加载映射,否则因缓存旧路径导致 Class not found;接着清空 Laravel 缓存并验证新类能否实例化。

升级 Laravel 框架后,新版本类路径可能已变更或新增命名空间,但 Composer 仍沿用旧的自动加载映射,导致 Class not found 错误或新功能无法调用——这并非代码写错,而是映射表未刷新。
确认是否需要重新生成自动加载映射
只要执行过以下任一操作,就必须运行 composer dump-autoload:修改了 composer.json 中的 autoload 或 autoload-dev 段(如新增 PSR-4 映射)、重命名/移动了类文件、升级 Laravel 主版本(如从 10→11)、添加或删除了 files 类型的全局函数文件。
注意:【仅改 composer.json 版本号但不执行 dump-autoload,新类仍不可用】。Laravel 启动时加载的是 vendor/composer/ 下缓存的映射文件,不是实时扫描目录。
生成优化版自动加载映射
执行命令生成带 classmap 的高效映射:
composer dump-autoload -o
-o 参数会强制 Composer 扫描所有 PSR-4 和 classmap 路径,生成扁平化的 autoload_classmap.php,大幅提升生产环境类加载速度。这一步在升级后必做,尤其当项目含大量自定义服务提供者或 Traits 时。
针对 Laravel 升级的特殊处理
升级 Laravel 主版本(如 10 → 11)后,必须按顺序执行:
第一步:运行 composer dump-autoload -o
第二步:清空 Laravel 自身缓存 → php artisan config:clear && php artisan cache:clear
第三步:验证自动加载是否生效 → 在 Tinker 中执行 new \App\Models\User(),不报错即成功。若仍提示类不存在,说明 app/Models 的 PSR-4 映射未被识别,需检查 composer.json 中是否遗漏该路径或命名空间拼写错误。


















