我需要挂钩作曲家安装过程来修复root包的二级依赖项的版本。即我的包取决于一些包(具有正确的版本),但这些包依赖于其他包,其版本是"错误"。我尝试使用 pre-package-install 挂钩来修补这些版本,但它对我不起作用,不执行Installer :: prePackageInstall中的代码。
root package 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": "*"
}
}
我需要在安装过程中将 * 替换为适当的版本。
答案 0 :(得分:0)
你不必修复"那个版本。您应该在正确的版本中添加第二级dep作为您自己的依赖项,并且案例已经解决。
如果第一级依赖项需要该软件包的任何版本,那么根据正确的版本,您将可安装的版本限制为您允许的版本。