composer.json应该根据php版本使用不同的包版本


composer.json should uses different packages versions depending of php version

travis-ci允许在某些PHP版本上运行phpunit

问题是我的composer.json需要phpunit/phpunit=~4.8,并且在phpunit 4.8.20上声明不再支持PHP 7.0+。此PHP版本应使用PHP 5.6+支持的phpunit/phpunit=~5.1

我的包需要在PHP 5.4+.上运行

我可以通过不支持PHP 5.4PHP 5.5来解决这个问题,但所有测试都在这个版本上运行得很好,在我的国家,这个版本被很多主机使用。

我认为这样做是可能的:

"phpunit/phpunit": "if php < 7 then ~4.8 else ~5.1"

也许config.platform能帮我?我也不明白它是怎么工作的。

您可以在Composer中创建或要求。如果你想说PHPUnit可以在4.8或5.x版本中使用,那就是:

"phpunit/phpunit": "~4.8|~5.0"

您必须在构建脚本中运行update,但Composer会根据检测到的PHP版本来解决这个问题。

你有责任维护你的测试与任何一个版本的兼容性,但Travic很快就会检测到失败,不是吗?