Composer钩子来修复包版本

时间:2014-09-22 14:27:30

标签: php composer-php

我需要挂钩作曲家安装过程来修复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": "*"
    }
}

我需要在安装过程中将 * 替换为适当的版本。

1 个答案:

答案 0 :(得分:0)

你不必修复"那个版本。您应该在正确的版本中添加第二级dep作为您自己的依赖项,并且案例已经解决。

如果第一级依赖项需要该软件包的任何版本,那么根据正确的版本,您将可安装的版本限制为您允许的版本。