我在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/