我需要在composer安装过程中挂接,以修复根包的二级依赖关系版本。也就是说,我的包依赖于一些包(有正确的版本),但这些包依赖于其他包,并且它的版本是"错误的"。我试图使用预包安装钩子来修补这样的版本,但它对我不起作用,安装程序:prePackageInstall中的代码没有执行。
根包composer.json如下所示:
{
"name": "***/root-package",
"repositories": [ { "type": "composer", "url": "http://***/packages.json" } ],
"require": {
"***/first-level-dep-1": "dev-release-XX",
"***/first-level-dep-2": "dev-release-XX"
},
"scripts": {
"pre-package-install": [
"root-package\Installer::prePackageInstall"
]
}
}
一级依赖composer.json如下所示:
{
"name": "***/first-level-dep-1",
"repositories": [ { "type": "composer", "url": "http://***/packages.json" } ],
"require": {
"***/second-level-dep-1": "*", // !!! here is my problem
"***/second-level-dep-2": "*"
}
}
在安装过程中,我需要将*替换为适当的版本。
您不必"修复"那个版本。您只需在正确的版本中添加第二级dep作为您自己的依赖项,情况就解决了。
如果一级依赖项需要该软件包的ANY版本,那么您将根据正确的版本将可安装版本限制为您允许的版本。