如何仅通过 修改我自己项目的composer.json文件来修改外部软件包的composer.json文件?
这仅用于测试目的。我需要测试一个软件包是否与另一个软件包的最新版本兼容。
我的项目composer.json:
{
"require": {
"foo/framework": "1.2.0",
"bar/extension": "1.1.0"
}
}
外部软件包(bar/extension
)composer.json:
{
"require": {
"foo/framework": "1.2.0"
}
}
所以这显然可行。但是,假设我要使用foo/framework
的新版本1.3.0
。由于bar/extension
取决于较早的版本,因此无法使用。
仅使用项目的composer.json,如何更改对bar/extension
软件包的要求?
答案 0 :(得分:3)
您可以使用package
类型的存储库来覆盖composer.json
的依赖性。在您的composer.json
中添加以下内容(应调整网址):
"repositories": [
{
"type": "package",
"package": {
"name": "bar/extension",
"version": "1.1.0",
"dist": {
"url": "https://github.com/bar/extension/archive/1.1.0.zip",
"type": "zip"
},
"require": {
"foo/framework": "1.2.0 || 1.3.0"
}
// rest of necessary settings from original bar/extension composer.json
}
}
],
请注意,package
类型非常不灵活,会带来很多问题-我不建议将其用于测试以外的其他用途。实际上,最好只是分叉该软件包并使用vcs
存储库在您的项目中使用它-您将能够在软件包中进行必要的调整,并作为对上游的请求请求(或永久使用fork) )。
答案 1 :(得分:0)