laravel版本升级的方式的求解?

需求:从laravel 8升级到laravel 10

方式 缺点 优点
修改composer包 代码不完全同步, 例如config;文档不一定能对齐; 相对简单
创建laravel 10 骨架,然后重新install 版本兼容包 工作量大 完全同步

项目的现状:

  • 面向app的接口、管理后台的大单体项目:fpm、console
  • 想上基于swoole驱动octane,目前测试结果不满意,性能没有提升,难道是代码太烂?;中度使用swoole、自认为swoole还行 :smile:
  • 依赖40个包、30个dev包
  • 单元测试很少
  • 目前使用低版本的phpstan做静态分析
  • 如果我要更新的话,我会用apifox、人工的方式来测试

当前结论:

  • 想要选择重新创建骨架的方式,各位有什么建议吗?
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 16

Laravel 8 到 10 的变化也不是很大,按照官方的升级指南改就行了,或者使用 rector 自行选择需要的规则,或者使用规则集


当然,如果你愿意花钱的话,可以看一下 Laravel Shift

1年前 评论
Rache1 (作者) 1年前
zhaozhenxiang (楼主) 1年前
leo

这个我司有经验

  1. 修改 composer.json 里的依赖到最新,然后执行 composer update
  2. 创建一个 Laravel10 的新项目(就是你说的骨架)
  3. 从新项目复制所有文件到老项目(排除 composer.json 和 composer.lock)
  4. 检查 diff

当然我们能这么做的最大底气是有完善的单元测试、集成测试,以及静态代码分析。

1年前 评论
dusty 1年前
zhaozhenxiang (楼主) 1年前
yyy123456 1年前
leo (作者) 1年前
zhaozhenxiang (楼主) 1年前

我每次会记录骨架版本号,然后要升级的时候去github上和最新的diff,一般来说骨架没有那么多的改动。 但是需要有完整的测试,有测试升级的话问问题不会很大的

1年前 评论
zhaozhenxiang (楼主) 1年前
nff93

第一步:添加官方仓库 git 源

git remote add laravel https://github.com/laravel/laravel.git

第二步:拉取当前版本的下一个版本到本地(因为你的是8.x,所以我们先拉取9.x)并合并到当前分支

git pull laravel 9.x --no-ff --allow-unrelated-histories

第三步:处理合并产生的冲突

这一步根据你自己的情况处理,注意有的文件不是简单的删除保留(比如 composer.json

第四步:提交合并

当手动解决完冲突后,执行 git add . && git commit -am '升级到laravel 9.x(内容只是示意)'

重复第二步到第四步,直到升级到想要的版本为止

第二步理论上能一步到位升级到10.x,不过我习惯一级一级的升

测试和推送

请务必认真测试!


当然, 如果只是简单粗暴的想升级到最新版本的话, 直接用 @leo 大佬的方法就行了

1年前 评论
zhaozhenxiang (楼主) 1年前

运行中的项目,其实一般不建议升级框架版本了,有漏洞就针对性的修补一下

1年前 评论
zhaozhenxiang (楼主) 1年前

没有什么经验,大概说下自己的

  1. 其他包的依赖检查
  2. composer update laravel
  3. 对需要修改的函数等进行修改
  4. api 测试、单元测试
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!