如何在没有依赖的情况下在composer中安装包

时间:2014-02-25 11:10:09

标签: php symfony composer-php

我将composersymfony php一起使用。

有一个bundle A依赖于另一个bundle B v 1.1

但我有最新版本的bundle B v 2

现在我想安装bundle A而不安装其依赖项bundle B v 1.1

我该怎么办?请建议。

1 个答案:

答案 0 :(得分:6)

<强>设置:

最新的瓢虫捆绑版本是1.0.2,但同时还有一些提交。它要求瓢虫版本为1.0.8,其中不包括最新的更改。

<强>溶液

一个简单的解决方案是使用inline-alias。类似的东西:

"require" : {
    "raulfraile/ladybug-bundle": "dev-master as 1.0.3"
    "raulfraile/ladybug": "dev-master as 1.0.9"
}

<强>替代:

您可以在 composer.json 中定义一个包含已更改依赖项的名称的包。

只需从原始包中复制包定义,添加dist / source位置并编辑要求。

然后

composer将使用这个新的包定义,因为它从所有已知的存储库中选择第一个匹配(最后总是查询packagist)。

您应该为dist-zip选择一个特定的提交。一个例子:

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "raulfraile/ladybug-bundle",
            "version": "1.0.3",
            "require": {
               "raulfraile/ladybug" : "~1.0@dev"
            },
            "dist": {
                "url": "https://github.com/raulfraile/LadybugBundle/archive/5c3739a881313f63f7b47ace49af5deeed211362.zip",
                "type": "zip"
            },
        }
    }
],

现在 composer.json 中需要"raulfraile/ladybug-bundle": "~1.0",它将使用您自己定义的1.0.3版本。