我在composer中使用symfony php

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

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

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

我该如何进行?请提出建议。

最佳答案

建立:

最新的瓢虫捆绑版本是1.0.2,但与此同时还进行了一些提交。它要求Ladybug版本为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位置并编辑需求即可。

然后,作曲家将使用这个新的程序包定义,因为它从所有已知存储库中选择第一个匹配项(总是查询打包程序的最后一个)。

您应该为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版本。

关于php - 如何在没有依赖关系的情况下在composer中安装软件包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22012397/

10-13 09:22