2014-09-01 93 views
1

我正在使用guzzlehttp/guzzle的项目。作曲家:重写PHP版本的传递依赖关系

虽然我们的生产服务器上使用PHP 5.4,我们的构建盒子仍然在5.3,所以当它运行composer install,我们看到了以下错误:

guzzlehttp/guzzle 4.2.x-dev requires php >=5.4.0 -> no matching package found. 

有什么办法来覆盖这一点?我已经要求php 5.3“作为”5.4.0,但它后来抱怨找不到'php'包。

似乎需要一个PHP版本是一个包的特例,并且不允许为正常包提供相同的覆盖。有没有解决的办法?

回答

0

我不知道解决这个问题的方法。

问题是:Composer应该如何知道应该执行代码的PHP,而不是PHP只是抓住它的依赖关系。目前无法覆盖PHP版本或已安装的扩展。

这个覆盖应该放在哪里?将它放入composer.json是错误的,因为这会改变检测到的PHP版本Composer的假设,并且会导致冲突。它可能应该是用于覆盖假定的PHP版本的本地Composer实例的某种配置。

我建议您将构建箱升级到5.4或安装仅用于Composer的PHP 5.4的其他版本。

如果您不使用应该运行代码的PHP版本,您将如何在测试执行期间检测到该构建框上的版本冲突?