是否可以从作曲家锁定文件中的另一个包更新所需的依赖项?

Is it possible to update a required dependency from another package in the composer lock file?

我目前在我的一个 Symfony 项目中使用 stof/doctrine-extensions-bundle,这个包需要 gedmo/doctrine-extensionsgedmo/doctrine-extensions 中的最新版本失败。但解决方案在兄弟分支之一 v2.4.x 中。

https://github.com/Atlantic18/DoctrineExtensions/commit/0b7bdbefd3d166def27928dcd62ab67c11c8f172

是否可以在 stof/doctrine-extensions-bundle 的要求中添加此分支,还是应该等到捆绑包的所有者创建新标签?

正在查看 stof/doctrine-extensions-bundle 的 composer.json 要求块:

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

它支持版本 2.3.4 到 <=3.0.0。因此,您应该能够毫无问题地在项目中安装 2.4.x 版本。 (Read about composer's version constraints here)

您不应手动修改 composer.lock 文件,也不应修改供应商目录中的 composer.json 文件。您可以在自己的项目中要求不同版本的依赖项,只要它们与其他依赖项要求兼容即可。

由于此修复程序尚未发布,您需要为此依赖项使用分支。您可以通过调用:

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

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