我无法更新我分叉的包,一周前工作

时间:2018-02-12 22:20:22

标签: php laravel symfony composer-php

我分叉了一个php包并在我的本地机器上使用了分叉版本,我打算扩展软件包,一周前我正在使用它一切都运行正常,今天我再次专注于应用程序的这一部分并且必须使用我推送到repo的最新代码更新软件包,所以我尝试更新软件包,如

composer update author / package-name

我也在composer.json

中有这个部分
"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/myproject/package-name"
    }
],

我突然明白了:

更新依赖项(包括require-dev) 您的要求无法解析为可安装的软件包。

  

问题1

     
      
  • symfony / event-dispatcher v4.0.3需要php ^ 7.1.3 - >你的PHP版本   (7.1.1)不满足该要求。

  •   
  • symfony / event-dispatcher v4.0.3需要php ^ 7.1.3 - >您的PHP版本(7.1.1)不满足该要求。

  •   
  • symfony / event-dispatcher的安装请求(在v4.0.3中锁定) - > symfony / event-dispatcher [v4.0.3]可以满足。

  •   

我目前安装了php 7.1.1并正在运行laravel 5.4,我想知道为什么在一周左右之后我能够运行上面的命令而没有问题今天我不能和什么也让我困惑的是这个:

https://laravel.com/docs/5.4/installation

服务器上laravel的php要求是5.6.4或更高。

那么为什么symfony / event-dispatcher需要7.1.3?为什么laravel自己的页面声明版本5.4 min-requirment是php 5.6.4?

任何人都有线索吗?

1 个答案:

答案 0 :(得分:2)

symfony / event-dispatcher包的3.4和4.0分支具有不同的PHP要求。看起来你的依赖树中的包已经导致从symfony / event-dispatcher 3.4更新到4.0。

要了解安装此软件包的原因,您可以使用Composer:

composer why symfony/event-dispatcher

您还可以在供应商目录的symfony/event-dispatcher文件中找到composer.json

grep -r --include=composer.json symfony/event-dispatcher vendor/

您很可能会看到其中一些可以使用该软件包的两个分支,例如

…
"symfony/event-dispatcher": "~3.4|~4.0",
…

(请注意,某些条目,例如<3.4值的条目,不是来自require,而是来自conflict部分。)

您可以尝试强制您的项目使用3.x版本的symfony / event-dispatcher包。将以下内容添加到根composer.json:

"symfony/event-dispatcher": "<4.0"

这应该强制安装3.4分支。但是如果有一个包需要4.0分支,你可能会遇到依赖冲突。