awanganddong
V2EX  ›  PHP

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

  •  
  •   awanganddong · Feb 22, 2021 · 3121 views
    This topic created in 1926 days ago, the information mentioned may be changed or developed.
    今天遇到一个问题

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

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

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

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

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

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

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


    感觉你这个方案比较好

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

    谢谢大家了。
    chenzheyu
        9
    chenzheyu  
       Feb 25, 2021
    @leo108 我的主管直接把 lock 干掉了,项目一直迭代半年没出现因为没 lock 的 bug 。这个就很牛逼了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1107 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 22:47 · PVG 06:47 · LAX 15:47 · JFK 18:47
    ♥ Do have faith in what you're doing.