我正在尝试使用旧的PHP源代码。 composer.json
包含:
{
"minimum-stability": "dev",
"name": "symfony/framework-standard-edition",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "v2.2.4",
[...]
"friendsofsymfony/user-bundle": "v1.3.1",
"doctrine/data-fixtures" : "dev-master#b4a135c",
[...]
但是当我运行php composer.phar install
时,我得到了:
Problem 1
- Installation request for doctrine/data-fixtures dev-master#b4a135c -> satisfiable by doctrine/data-fixtures[dev-master].
- doctrine/data-fixtures dev-master requires php ^7.1 -> your PHP version (5.6.37) does not satisfy that requirement.
doctrine/data-fixtures
的提交要求为here。
为什么作曲家谈论的是PHP ^7.1
?如何真正使用此软件包的b4a135c
版?
答案 0 :(得分:1)
使用此类约束时,需求来自分支。因此,对于dev-master#b4a135c
需求检查了master
分支,因此这是^7.1
需求的来源。
快速的解决方法是使用不同的分支:
"doctrine/data-fixtures": "1.0.x-dev#b4a135c",
但是您应该真正地修复它并使用实际的约束和发布-指向指定的提交基本上是hack,应该避免。长期依赖它可能会在某些时候带来一些问题。此限制和可能的问题是documented:
尽管有时这很方便,但从长远来看,这不应该是您使用软件包的方式,因为它存在技术限制。仍将从您在哈希之前指定的分支名称中读取composer.json元数据。因此,在某些情况下,这不是一个可行的解决方法,您应该始终尝试尽快切换到带标签的发行版。