Php composer.json中的特定提交版本会产生错误

Php composer.json中的特定提交版本会产生错误,php,composer-php,Php,Composer Php,我正在尝试使用旧的PHP源代码composer.json包含: { "minimum-stability": "dev", "name": "symfony/framework-standard-edition", "description": "The \"Symfony Standard Edition\" distribution", "autoload": { "psr-0": { "": "src/" } }, "requ

我正在尝试使用旧的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安装时
我得到了:

  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.
条令/数据装置
此提交的要求为


为什么composer谈论php
^7.1
?如何真正使用此软件包的版本
b4a135c

当您使用此类约束时,需求来自分支机构。因此,对于
dev master#b4a135c
要求,检查
master
分支,因此这是
^7.1
要求的来源

快速解决方法是使用不同的分支:

"doctrine/data-fixtures": "1.0.x-dev#b4a135c",
但您应该真正地修复它,并使用真正的约束和发布-指向指定的提交基本上是一种黑客行为,应该避免。长期依赖它可能会在某个时候带来一些问题。这种限制和可能的问题是:

虽然这有时很方便,但它不应该是长期使用包的方式,因为它有技术限制。composer.json元数据仍将从哈希之前指定的分支名称中读取。因此,在某些情况下,这将不是一个实际的解决方法,您应该始终尝试尽快切换到标记版本