V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
awanganddong
V2EX  ›  PHP

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

  •  
  •   awanganddong · 2021-02-22 10:50:16 +08:00 · 2554 次点击
    这是一个创建于 1396 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天遇到一个问题

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

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

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

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

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

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

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


    感觉你这个方案比较好

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

    谢谢大家了。
    chenzheyu
        9
    chenzheyu  
       2021-02-25 10:20:52 +08:00
    @leo108 我的主管直接把 lock 干掉了,项目一直迭代半年没出现因为没 lock 的 bug 。这个就很牛逼了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2894 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:30 · PVG 22:30 · LAX 06:30 · JFK 09:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.