laravel 项目切换 PHP 版本的正确操作流程大家是怎么处理的

2021-02-22 10:50:16 +08:00
 awanganddong
今天遇到一个问题

开发环境用的 php 版本是 7.4
但是线上环境是 7.3
项目是 laravel5.8

这时候执行后台进程直接提示 composer 依赖的是 php 7.4

那么大家关于这种切换版本是
备份源文件,
删除 vendor,
然后通过 composer install 吗 ( composer 此时是 php7.3 版本)

最后测试代码是否受影响吗
2496 次点击
所在节点    PHP
9 条回复
mrgeneral
2021-02-22 11:01:03 +08:00
线上为准,开发环境兼容线上环境,在 composer.json 里面把 PHP version 定固定就不会出现这个问题了。
puzzle9
2021-02-22 11:17:30 +08:00
对 就如同上面说的

有一点 建议不要直接改 composer 版本
因为这个 每个 php 版本语法有点差别
用新的语法 这就
Showfom
2021-02-22 11:20:06 +08:00
7.4 和 7.3 差别不大,一般正常写的程序都应该能兼容
imnpc
2021-02-22 11:44:03 +08:00
一般不是要求线上线下版本一致吗
我用 laravel 目前都是在 7.4 下开发
因为很多 composer 引入的类库可能要求是 7.4 了
mirrorpen
2021-02-22 11:57:58 +08:00
那就删掉 composer.lock,重新安装 7.3 的依赖,不过还是环境一致比较稳妥
xytest
2021-02-22 15:50:17 +08:00
还是将开发环境换为 7.3 稳妥
leo108
2021-02-22 16:11:44 +08:00
正确的做法是在 composer 中指定 PHP 版本

FYI: https://andy-carter.com/blog/composer-php-platform

另外 #5 删除 composer.lock 是一个作死的行为,特别是没有完备的测试代码的情况下
awanganddong
2021-02-22 23:19:23 +08:00
@leo108


感觉你这个方案比较好

我现在直接是部署了一套 php7.4 的项目。

谢谢大家了。
chenzheyu
2021-02-25 10:20:52 +08:00
@leo108 我的主管直接把 lock 干掉了,项目一直迭代半年没出现因为没 lock 的 bug 。这个就很牛逼了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/755006

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX