我将composer
与symfony php
一起使用。
有一个bundle A
依赖于另一个bundle B v 1.1
。
但我有最新版本的bundle B v 2
。
现在我想安装bundle A
而不安装其依赖项bundle B v 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
版本。