我正在开发一个使用guzzlehttp / guzzle的项目。
虽然我们的生产服务器使用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“as”5.4.0,但它然后抱怨无法找到包'php'。
似乎需要PHP版本是包的特殊情况,并且不允许为普通包提供相同的覆盖。有办法解决这个问题吗?
答案 0 :(得分:0)
我不知道如何解决这个问题。
问题是:Composer应该如何知道应该执行代码的PHP,而不是仅仅抓住它的依赖关系的PHP。目前无法覆盖PHP版本或已安装的扩展。
这个覆盖应该放在哪里?将它放入composer.json
是错误的,因为这会改变Composer假定的检测到的PHP版本,并会导致冲突。它应该是用于覆盖假定的PHP版本的本地Composer实例的某种配置。
我建议将构建框升级到5.4或安装仅用于Composer的PHP 5.4的其他版本。
如果您不使用应该运行代码的PHP版本,您如何在测试执行期间检测该构建框上的版本冲突?