升级Laravel主版本需先检查PHP版本、更新Composer并备份项目;修改composer.json中Laravel包版本后运行composer update;推荐使用laravel-shift工具自动处理部分升级;手动对比配置文件、调整服务提供者及替换弃用API;最后清除缓存并运行测试确保应用正常。

如果您正在维护一个基于 Laravel 的项目,并希望利用其最新的功能、性能改进和安全更新,则需要将框架升级到最新的主版本。Laravel 的主版本升级并非简单的包更新,而是一个涉及多个步骤的迁移过程,需要仔细处理以避免破坏现有应用。以下是详细的升级操作指南。
本文运行环境:MacBook Pro,macOS Sonoma
在开始升级之前,必须确保当前开发环境满足新 Laravel 版本的系统要求。这包括 PHP 版本、必要的扩展以及第三方包的兼容性。忽略此步骤可能导致升级后应用无法启动或出现难以预料的错误。
1、通过终端执行 php -v 命令,确认 PHP 版本符合目标 Laravel 版本的要求。例如,Laravel 11 需要 PHP 8.2 或更高版本。
2、检查并更新 Composer 到最新稳定版,使用命令 composer self-update。
3、查阅官方升级文档,了解目标版本废弃了哪些功能或进行了重大更改,以便提前修改代码。
4、备份整个项目文件和数据库,这是进行任何重大变更前的关键预防措施。
升级的核心是更新 composer.json 文件中的 Laravel 核心包版本约束,然后让 Composer 解析并安装新的依赖树。此步骤会下载新版本的框架代码及其兼容的依赖包。
1、打开项目的 composer.json 文件,找到 "require" 部分。
2、将所有以 "laravel/..." 开头的包的版本号更新为目标主版本。例如,从 Laravel 10 升级到 11,需将 "laravel/framework": "^10.0" 修改为 "laravel/framework": "^11.0"。
3、同时检查并更新其他官方 Laravel 包(如 laravel/sanctum, laravel/tinker)至与新主版本兼容的版本。
4、保存文件后,在项目根目录运行 composer update 命令,Composer 将开始安装新版本的包。
Laravel 官方提供了一个名为 laravel-shift 的自动化工具,它可以分析您的代码库并自动应用许多常见的升级更改,从而显著减少手动工作量。虽然不是强制性的,但强烈推荐使用。
1、访问 laravel-shift.com 网站并注册或登录您的账户。
2、创建一个新的升级任务,选择当前版本作为源版本,目标主版本作为目标版本。
3、按照指引授权 laravel-shift 访问您的 GitHub 或 GitLab 仓库,或者上传一个项目压缩包。
4、提交任务后,工具会分析代码并生成一个包含所有建议更改的 Pull Request (PR),您可以在合并前审查这些更改。
自动化工具无法处理所有情况,某些重大变更需要开发者手动干预。这通常涉及更新配置文件、调整服务提供者或修改已弃用的 API 调用。
1、将旧版本的配置文件与新版本 config/ 目录下的默认文件进行对比,合并必要的更改。可以使用 git diff 或专门的文件比较工具。
2、检查 app/Providers/ 目录下的服务提供者,确认没有使用已被移除的门面或类。
3、根据官方升级指南,查找并替换代码中所有被标记为已弃用的功能。例如,Laravel 11 移除了对字符串和数组辅助函数的支持,需要将其替换为对应的类方法调用。
4、更新测试代码,确保所有单元测试和功能测试仍然通过。
完成代码和配置的修改后,必须彻底清理应用缓存并运行测试,以确保升级后的应用能够正常工作。
1、执行 Artisan 命令 php artisan config:clear 和 php artisan route:clear 来清除配置和路由缓存。
2、运行 php artisan view:clear 清除编译的 Blade 模板。
3、执行项目的完整测试套件,命令通常是 phpunit 或 pest,确保所有测试均通过。
4、在本地开发环境中手动测试应用的核心功能,确认无回归问题。
以上就是laravel怎么升级到最新的主版本_laravel升级到最新主版本教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号