如何解决作曲家软件包对外部软件包的循环依赖?

Tom*_*uba 2 php composer-php

请参阅Github问题,这个问题的起源。

我的包是phpdocumentor/reflection-docblock,它不是依赖项。


我正在尝试更新phpdocumentor/reflection-docblock为较新的phpunit/phpunit依赖关系,该依赖关系开始使用我更新的软件包

有新的循环依赖项:

  • 这个phpdocumentor/reflection-docblock包要求phpunit/phpunit
  • phpunit/phpunit要求phpspec/prophecy(自phpunit/phpunit4.5开始)
  • phpspec/prophecy需要这个phpdocumentor/reflection-docblockthis)包装

概括地说:

  • A需要B
  • B需要C(新的!)
  • C需要A

之前-工作

{
    "require-dev": {
        "phpunit/phpunit": "4.4"
    }
}
Run Code Online (Sandbox Code Playgroud)

后断

{
    "require-dev": {
        "phpunit/phpunit": "4.5"
    }
}
Run Code Online (Sandbox Code Playgroud)

当我跑步时:

composer update
Run Code Online (Sandbox Code Playgroud)

作曲家冲突输出

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for phpdocumentor/reflection-docblock dev-phpunit -> satisfiable by phpdocumentor/reflection-docblock[dev-phpunit].
    - phpspec/prophecy v1.3.1 requires phpdocumentor/reflection-docblock ~2.0 -> satisfiable by phpdocumentor/reflection-docblock[2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5].
    - phpunit/phpunit 4.5.0 requires phpspec/prophecy ~1.3.1 -> satisfiable by phpspec/prophecy[v1.3.1].
    - Can only install one of: phpdocumentor/reflection-docblock[2.0.0, dev-phpunit].
    - Can only install one of: phpdocumentor/reflection-docblock[2.0.1, dev-phpunit].
    - Can only install one of: phpdocumentor/reflection-docblock[2.0.2, dev-phpunit].
    - Can only install one of: phpdocumentor/reflection-docblock[2.0.3, dev-phpunit].
    - Can only install one of: phpdocumentor/reflection-docblock[2.0.4, dev-phpunit].
    - Can only install one of: phpdocumentor/reflection-docblock[2.0.5, dev-phpunit].
    - Installation request for phpunit/phpunit 4.5 -> satisfiable by phpunit/phpunit[4.5.0].
Run Code Online (Sandbox Code Playgroud)

我试过了:

  • minimum-stability: dev
  • 别名 "phpunit/phpunit": "4.5 as 4.4"

任何想法如何解决这个问题?

mle*_*eko 5

"extra": {
    "branch-alias": {
        "dev-master": "4.x-dev"
    }
}
Run Code Online (Sandbox Code Playgroud)

composer.jsonphpdocumentor/reflection-docblock

这将允许您使用当前的主版本4.x作为满足要求的版本

缺点是。在继续使用版本时,您将必须更新此部分。