laravel版本升级的方式的求解?
需求:从laravel 8升级到laravel 10
方式 | 缺点 | 优点 |
---|---|---|
修改composer包 | 代码不完全同步, 例如config;文档不一定能对齐; | 相对简单 |
创建laravel 10 骨架,然后重新install 版本兼容包 | 工作量大 | 完全同步 |
项目的现状:
- 面向app的接口、管理后台的大单体项目:fpm、console
- 想上基于swoole驱动octane,目前测试结果不满意,性能没有提升,难道是代码太烂?;中度使用swoole、自认为swoole还行
- 依赖40个包、30个dev包
- 单元测试很少
- 目前使用低版本的phpstan做静态分析
- 如果我要更新的话,我会用apifox、人工的方式来测试
当前结论:
- 想要选择重新创建骨架的方式,各位有什么建议吗?
本作品采用《CC 协议》,转载必须注明作者和本文链接
Laravel 8 到 10 的变化也不是很大,按照官方的升级指南改就行了,或者使用 rector 自行选择需要的规则,或者使用规则集。
当然,如果你愿意花钱的话,可以看一下 Laravel Shift
这个我司有经验
当然我们能这么做的最大底气是有完善的单元测试、集成测试,以及静态代码分析。
我每次会记录骨架版本号,然后要升级的时候去github上和最新的diff,一般来说骨架没有那么多的改动。 但是需要有完整的测试,有测试升级的话问问题不会很大的
第一步:添加官方仓库 git 源
第二步:拉取当前版本的下一个版本到本地(因为你的是8.x,所以我们先拉取9.x)并合并到当前分支
第三步:处理合并产生的冲突
第四步:提交合并
当手动解决完冲突后,执行
git add . && git commit -am '升级到laravel 9.x(内容只是示意)'
重复第二步到第四步,直到升级到想要的版本为止
第二步理论上能一步到位升级到
10.x
,不过我习惯一级一级的升测试和推送
请务必认真测试!
当然, 如果只是简单粗暴的想升级到最新版本的话, 直接用 @leo 大佬的方法就行了
运行中的项目,其实一般不建议升级框架版本了,有漏洞就针对性的修补一下
没有什么经验,大概说下自己的