Composer php 如何解决编写器需求冲突?

Composer php 如何解决编写器需求冲突?,composer-php,laravel-5,illuminate-container,Composer Php,Laravel 5,Illuminate Container,我正在测试Laravel框架的新5.1版本 我想安装著名的barryvdh/laravel ide帮助包 要知道问题是:barryvdh/laravel ide帮助程序需要illumb/filesystem:5.0.x,而laravel/framework需要illumb/filesystem:5.1.x 如何配置我的composer.json文件 注意:在composer.json文件中,我有最小稳定性:dev和首选稳定性:true 安装时,出现以下错误: Problem 1 - Co

我正在测试Laravel框架的新5.1版本

我想安装著名的barryvdh/laravel ide帮助包

要知道问题是:barryvdh/laravel ide帮助程序需要illumb/filesystem:5.0.x,而laravel/framework需要illumb/filesystem:5.1.x

如何配置我的composer.json文件

注意:在composer.json文件中,我有最小稳定性:dev和首选稳定性:true

安装时,出现以下错误:

Problem 1
    - Conclusion: remove laravel/framework 5.1.x-dev
    - barryvdh/laravel-ide-helper 2.0.x-dev requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - barryvdh/laravel-ide-helper v2.0.0 requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - barryvdh/laravel-ide-helper v2.0.1 requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - barryvdh/laravel-ide-helper v2.0.2 requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - barryvdh/laravel-ide-helper v2.0.3 requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - don't install illuminate/filesystem 5.0.x-dev|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.0|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.22|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.25|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.26|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.28|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.4|don't install laravel/framework 5.1.x-dev
    - Installation request for laravel/framework 5.1.* -> satisfiable by laravel/framework[5.1.x-dev].
    - Installation request for barryvdh/laravel-ide-helper ^2.0@dev -> satisfiable by barryvdh/laravel-ide-helper[2.0.x-dev, v2.0.0, v2.0.1, v2.0.2, v2.0.3].
  Problem 1
    - Installation request for barryvdh/laravel-ide-helper dev-master -> satisfiable by barryvdh/laravel-ide-helper[dev-master].
    - Conclusion: remove laravel/framework 5.1.x-dev
    - Conclusion: don't install laravel/framework 5.1.x-dev
    - barryvdh/laravel-ide-helper dev-master requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, 5.0.28].
    - don't install illuminate/filesystem 5.0.x-dev|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem 5.0.28|don't install laravel/framework 5.1.x-dev
    - Installation request for laravel/framework 5.1.* -> satisfiable by laravel/framework[5.1.x-dev].
我尝试了下面所有的命令,结果都是一样的

$ composer require barryvdh/laravel-ide-helper,
$ composer require barryvdh/laravel-ide-helper:@dev --dev
$ composer require barryvdh/laravel-ide-helper --dev --update-with-dependencies
我还尝试在composer.json文件上创建一个别名:

然后出现以下错误:

Problem 1
    - Conclusion: remove laravel/framework 5.1.x-dev
    - barryvdh/laravel-ide-helper 2.0.x-dev requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - barryvdh/laravel-ide-helper v2.0.0 requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - barryvdh/laravel-ide-helper v2.0.1 requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - barryvdh/laravel-ide-helper v2.0.2 requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - barryvdh/laravel-ide-helper v2.0.3 requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
    - don't install illuminate/filesystem 5.0.x-dev|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.0|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.22|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.25|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.26|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.28|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem v5.0.4|don't install laravel/framework 5.1.x-dev
    - Installation request for laravel/framework 5.1.* -> satisfiable by laravel/framework[5.1.x-dev].
    - Installation request for barryvdh/laravel-ide-helper ^2.0@dev -> satisfiable by barryvdh/laravel-ide-helper[2.0.x-dev, v2.0.0, v2.0.1, v2.0.2, v2.0.3].
  Problem 1
    - Installation request for barryvdh/laravel-ide-helper dev-master -> satisfiable by barryvdh/laravel-ide-helper[dev-master].
    - Conclusion: remove laravel/framework 5.1.x-dev
    - Conclusion: don't install laravel/framework 5.1.x-dev
    - barryvdh/laravel-ide-helper dev-master requires illuminate/filesystem 5.0.x -> satisfiable by illuminate/filesystem[5.0.x-dev, 5.0.28].
    - don't install illuminate/filesystem 5.0.x-dev|don't install laravel/framework 5.1.x-dev
    - don't install illuminate/filesystem 5.0.28|don't install laravel/framework 5.1.x-dev
    - Installation request for laravel/framework 5.1.* -> satisfiable by laravel/framework[5.1.x-dev].
这是我的composer.json文件:


核心问题源于对5.0.x版本的过度限制。我不知道这是否有充分的理由


一个选项是将laravel ide helper分叉到您自己的repo中,将版本约束更改为类似^5.0的内容,可能还有包名,并将分叉repo作为git存储库添加到composer.json文件中。这至少可以让你看看它是否能像预期的那样工作。

问题是,正如你指出的,你已经安装了Laravel 5.1,顺便说一句,它仍然不稳定,我不建议使用它atm,包需要5.0。*

有几种解决方案:

在laravel ide帮助程序存储库中创建一个问题,要求作者减轻版本限制。请注意,此库与版本密切相关,这可能就是版本约束如此严格的原因。 不要安装不稳定的5.1版本,但要坚持5.0,在发布和更新软件包时使用5.1。
我已使用composer.json文件中的一个别名解决了此问题:

因此,laravel/framework拥有illumb/filesystem:5.1.x-dev,barryvdh/laravel ide助手认为拥有illumb/filesystem:5.0.28

我的第一个方法:

"require": {
    "laravel/framework": "5.1.*",
    "illuminate/filesystem": "5.1.x-dev as 5.0.28"
},

它不起作用,因为laravel/framework将其用作子树,然后我必须为laravel/framework而不是Illumb/filesystem设置别名。

谢谢,我知道5.1版本不稳定,但我想测试它们。我还在LaravelIDEHelperGithub页面上打开了一个问题。今天我只是在测试,但明天我可能会在一个客户应用程序上遇到类似的问题,这就是为什么我要问如何解决这些冲突。Heuvel现在允许此包使用composer.json中的L5.1。所以如果你需要2。x@dev对于这一点,它现在应该起作用了。
"require": {
    "laravel/framework": "5.1.*",
    "illuminate/filesystem": "5.1.x-dev as 5.0.28"
},