Laravel如何升级到最新版本?(升级指南和步骤)
发布时间 - 2026-01-01 00:00:00 点击率:次Laravel 11 升级需分三步:先确认环境(PHP ≥8.2)、备份并新建分支;再更新 composer.json 及依赖,运行 php artisan upgrade 迁移结构;最后验证缓存、测试、集成与日志,准备回滚。
直接升级 Laravel 到最新主版本不是改个数字就完事,关键在控制风险、适配变更、验证结果。Laravel 11 是当前最新稳定版(截至 2025 年底),它对 PHP 8.2+ 有硬性要求,且结构精简、内核重构,跳过中间版本容易出问题。
先确认环境和备份
这是所有操作的前提,不能省略:
- 运行 php -v 确认 PHP 版本 ≥ 8.2;低于则先升级 PHP
- 执行 php artisan --version 查看当前 Laravel 版本,判断升级跨度(例如从 9 → 11 就不建议跳过 10)
- 用 git checkout -b upgrade-to-11 新建分支,避免污染主干
- 完整备份代码 + 数据库 + config/ 和 .env 文件
更新 composer.json 并拉取依赖
核心是让 Composer 解析新版依赖树,同时兼顾生态包兼容性:
- 打开 composer.json,修改 "laravel/framework": "^11.0"(原为 ^10.0 或更低)
- 同步更新配套包:如 "laravel/sanctum": "^4.0"、"spatie/laravel-ignition": "^2.4"、"nunomaduro/collision": "^8.1"
- 检查 "php" 行是否已改为 "^8.2",否则 Composer 会拒绝安装
- 保存后运行 composer update --with-all-dependencies,避免部分包被锁死
处理结构性与代码级变更
Laravel 11 引入了轻量应用结构,默认不生成 app/Http/Controllers 等目录,还需调整多处逻辑:
- 运行 php artisan upgrade(需先 composer require laravel/upgrade --dev),自动迁移目录结构和配置
- 检查 AppServiceProvider:register/boot 方法签名未变,但部分绑定方式推荐改用容器扩展
- HTTP 内核中中间件组定义方式简化,旧的 $middlewareGroups 需按新模板重写
- 移除所有 illuminate/* 的手动 require(Laravel 11 已统一由框架管理)
- 搜索项目中 str()、array_* 辅助函数调用,替换为 Str:: 或 Arr:: 命名空间调用
验证与上线前收尾
升级完成≠可用,必须逐层验证:
- 清空缓存:php artisan config:clear && php artisan cache:clear && php artisan view:clear
- 运行全部测试:phpunit 或 php artisan test,重点关注认证、队列、API 响应
- 手动触发一次备份、邮件通知、队列任务,确认第三方集成未中断
- 在预发布环境跑 24 小时,监控日志中的 Deprecated 和 Undefined array key 类警告
- 准备好回滚命令:git checko
ut main && composer install && php artisan migrate:rollback
基本上就这些。不复杂但容易忽略细节,尤其是跨大版本时的配置迁移和第三方包适配。官方 UPGRADING.md 和 changelog.md 比任何教程都准,建议边操作边对照着看。
# php
# laravel
# js
# git
# json
# composer
# app
# ai
# 2025
# 中间件
# Array
# 命名空间
# require
# register
# undefined
# 数据库
# http
# 重构
# 第三方
# 跳过
# 这是
# 尤其是
# 就不
# 重写
# 还需
# 绑定
# 它对
# 更低
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Windows Hello人脸识别突然无法使用
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel如何处理CORS跨域请求?(配置示例)
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
LinuxCD持续部署教程_自动发布与回滚机制
怎样使用JSON进行数据交换_它有什么限制
如何快速生成凡客建站的专业级图册?
Laravel观察者模式如何使用_Laravel Model Observer配置
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
三星网站视频制作教程下载,三星w23网页如何全屏?
Python文件流缓冲机制_IO性能解析【教程】
php打包exe后无法访问网络共享_共享权限设置方法【教程】
简单实现Android验证码
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
个人网站制作流程图片大全,个人网站如何注销?
使用spring连接及操作mongodb3.0实例
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
bing浏览器学术搜索入口_bing学术文献检索地址
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel如何配置和使用缓存?(Redis代码示例)
,网页ppt怎么弄成自己的ppt?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
JavaScript数据类型有哪些_如何准确判断一个变量的类型
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
jQuery中的100个技巧汇总
重庆市网站制作公司,重庆招聘网站哪个好?
Linux系统运维自动化项目教程_Ansible批量管理实战
如何挑选高效建站主机与优质域名?
Laravel怎么在Controller之外的地方验证数据
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
iOS发送验证码倒计时应用
清除minerd进程的简单方法
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Laravel如何与Inertia.js和Vue/React构建现代单页应用
如何在阿里云高效完成企业建站全流程?
如何在腾讯云免费申请建站?
Laravel如何与Pusher实现实时通信?(WebSocket示例)
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
如何在IIS7中新建站点?详细步骤解析


ut main && composer install && php artisan migrate:rollback