您可以在架构中指定特定版本的Composer吗?

时间:2018-03-08 21:15:43

标签: php composer-php

背景信息:我正在与PHP项目团队合作,我们遇到了一个问题,其中来自其他团队成员的代码审核修改了{{1}中所有time字段的格式文件。事实证明他使用的是更老版本的作曲家,它以不同的格式输出composer.lock个字段。一旦他更新了重新安装的软件包,字段就会保持不变。

有没有办法指定Composer的最低版本,以要求所有在项目上工作的团队成员使用最低版本来避免这样的问题。如果我们没有发现此问题,time文件会在具有不同编写器版本的人安装新软件包时发生这种不必要的更改

2 个答案:

答案 0 :(得分:0)

有两种可能性:

  • 可以签入composer.phar以确保每个人都使用相同版本的composer
  • 通过运行composer
  • 随时保持composer本身不断更新,以确保每个人都在使用composer self-update的最新版本。

无论如何,由于composer随着时间的变化,您可能仍然会遇到相同的问题。

答案 1 :(得分:0)

您可以创建在每次更新之前都会被调用的脚本,如果composer版本太旧,则抛出异常。

composer.json中:

"scripts": {
    "pre-update-cmd": [
        "ComposerVersionCheck::check"
    ]
}

用于版本检查的简单类:

class ComposerVersionCheck {

    public static function check() {
        if (version_compare(\Composer\Composer::VERSION, '1.7.0', '<')) {
            throw new \Exception(
                'Your Composer version (' . \Composer\Composer::VERSION . ') is too old,'
                . ' 1.7.0 or higher is required.'
            );
        }
    }
}