我已经放入
"require": {
"php": ">=5.5",
"phpunit/phpunit": ">4,<6"
},
在我的composer.json文件中:
https://github.com/giorgiosironi/eris/blob/master/composer.json#L20
然而,composer install
仍然接受在hhvm
上运行,如所示
https://travis-ci.org/giorgiosironi/eris/jobs/118241849
我认为需要php
意味着我想要一个特定版本的php
,所以hhvm
被排除在外。相反,这个选择似乎意味着如果存在php
,它必须满足版本约束,但如果只有hhvm
,它将不适用。
这就是正在发生的事情吗?如果是,我如何指定包与hhvm
不兼容?
您可以使用冲突选项来表示您的包与HHVM冲突。这看起来像
"conflict": {
"hhvm": "*"
}
它将您的包设置为与HHVM的每个版本都冲突。
HHVM发出PHP_VERSION
常量。我确信composer只是简单地使用这些常量来计算这里的版本。
我的理解是,HHVM
增加了他们的PHP_VERSION
,因为他们获得了与相关的香草php版本的功能对等性。
否,如果php
在所需的阵列中,则必须安装并且至少是指定的版本。正如@Evert所说,HHVM在查询时提供php版本。
检查hhvm依赖关系:https://getcomposer.org/doc/02-libraries.md#platform-包装