Php 是否可以从composer锁文件中的另一个包更新所需的依赖项?

Php 是否可以从composer锁文件中的另一个包更新所需的依赖项?,php,symfony,composer-php,stofdoctrineextensions,gedmo-tree,Php,Symfony,Composer Php,Stofdoctrineextensions,Gedmo Tree,我目前正在我的一个Symfony项目中使用stof/document extensions捆绑包,该捆绑包需要gedmo/document extensions。gedmo/document extensions中的最新版本失败。但是解决方案在一个同级分支中v2.4.x 是否可以将此分支添加到stof/document extensions bundle的需求中,或者我是否应该等到bundle的所有者创建新标记?查看stof/document extensions bundle的compose

我目前正在我的一个Symfony项目中使用
stof/document extensions捆绑包
,该捆绑包需要
gedmo/document extensions
gedmo/document extensions
中的最新版本失败。但是解决方案在一个同级分支中v2.4.x


是否可以将此分支添加到
stof/document extensions bundle
的需求中,或者我是否应该等到bundle的所有者创建新标记?

查看stof/document extensions bundle的composer.json require块:

"gedmo/doctrine-extensions": "^2.3.4"

它支持版本2.3.4至,因为此修复程序尚未发布,所以您需要使用分支来实现此依赖关系。您可以通过拨打以下电话来完成此操作:

composer require "gedmo/doctrine-extensions:2.4.x-dev"

这会将此依赖项添加到项目的
composer.json
。但是要小心这一点,并将其视为临时解决方案,直到使用此修复程序的稳定版本发布。通常不建议对依赖项使用分支。

在任何情况下都不会修改composer.lock,只修改composer.json。您可以尝试将gedmo/条令扩展:2.4.*作为您自己项目的依赖项,并查看它是否与stof/条令扩展包的要求兼容。这是正确的。另外,您可以向composer.json(不是锁文件!)添加
“gedmo/doctrine扩展名”:“^2.4”
,或者使用命令行:
composer require gedmo/doctrine扩展名:“^2.4”
,这将执行相同的操作。这不应该影响您的stof/条令扩展包,除非您选择的版本存在某种冲突。然后事情就变得更加困难了。谢谢你的回答,但是我目前在使用最新版本的gedmo/doctrine扩展时遇到了麻烦。版本2.4.35在嵌套树类中存在问题。所以根据你的anwser,我想我应该等到gedmo的所有者标记一个新版本。啊,你指的是文字2.4.x分支。我以为你的意思是它只有2.4版本。你应该像rob指出的那样使用2.4.x-dev。这是可行的,但是在更新分支时,使用dev分支可能会产生有趣的结果。一种更粗暴的方法是分叉dev分支并将composer指向它。这将基本上冻结开发分支并将您与任何日常更改隔离。@Cerad只要您不是每天/小时运行
composer update
(即使在稳定版本中也可能会出现问题),这应该不是一个大问题-包版本将锁定在
composer.lock
。确实如此。然而,Symfony确实倾向于在相当频繁的基础上发布点版本。而且很容易忘记更新可能会破坏一些看似无关的东西。