如何撰写最新版本的require-dev和最低版本的require

时间:2019-08-20 02:06:42

标签: php composer-php phpunit

我想对使用composer安装的软件包的最低支持版本进行测试,但是理想情况下,我希望开发版本为最新版本。

具体地说,我想运行此命令以安装最低版本的软件包,以进行测试:

composer update --prefer-lowest --prefer-stable

但是,这也会降级PHPUnit和其他开发包,这可能会由于这些开发包中的错误而导致测试失败。

我可以更明确地了解每个开发包所需的版本,尽管我可能想使用其使用的最低版本的包来测试我的包,但是使用较低版本的PHPUnit和其他开发包。

是否有一种方法可以强制require保持为--prefer-lowest,同时保持require-dev最晚?

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是对开发包使用正确的约束。如果您的测试要求PHPUnit 8.3.4正确运行并且可能在8.3.3上失败,请使用^8.3.4作为phpunit/phpunit软件包的约束。

答案 1 :(得分:1)

--no-dev标志会跳过install|require|update操作的开发包。

  1. 更新以获取最新版本的应用程序(require开发(require-dev)软件包:

    composer update --no-autoloader
    
  2. 运行以下命令将您的应用程序依赖项(require)降级到最低的稳定版本,但使用--no-dev来防止降级开发依赖项(require-dev)。

  3. >
    composer update --no-dev --prefer-lowest --prefer-stable --no-autoloader
    
  4. requirerequire-dev软件包转储自动加载器。

    composer dump-autoload