Composer php 如何使依赖项使用其依赖项的修补版本?

Composer php 如何使依赖项使用其依赖项的修补版本?,composer-php,Composer Php,我的项目有一个vendor1/dep1依赖项。此软件包有自己的依赖项vendor2/dep2。最后一个包有一个bug,我修复了它,并将我的补丁作为一个请求返回。但是维护人员没有响应,我想使用这个子依赖项的补丁版本 为此,我必须拿出一个vendor1/dep1包,将其composer.json更改为: "repositories": [ { "type": "vcs", "url": "https://github.com/m

我的项目有一个
vendor1/dep1
依赖项。此软件包有自己的依赖项
vendor2/dep2
。最后一个包有一个bug,我修复了它,并将我的补丁作为一个请求返回。但是维护人员没有响应,我想使用这个子依赖项的补丁版本

为此,我必须拿出一个
vendor1/dep1
包,将其
composer.json
更改为:

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/me/dep2"
        }
    ],
    "require": {
        "vendor2/dep2": "dev-master",
并将其提交到
patched-dep2
分支

之后,我还更新了我的项目
composer.json

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/me/dep1"
        }
    ],
    "require": {
        "vendor1/dep1": "dev-patched-dep2",

非常棘手,而且不起作用。我不知道为什么。非常感谢您的建议。

存储库
设置将从依赖项中忽略-此设置仅对根项目的
composer.json
有效。因此,
vendor1/dep1
fork中的设置将被忽略

您需要在主项目的
composer.json
中为这两个分叉定义存储库:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/me/dep1"
    },
    {
        "type": "vcs",
        "url": "https://github.com/me/dep2"
    }
],
"require": {
    "vendor1/dep1": "dev-patched-dep2"
}
但在您的情况下,您应该能够在不分叉
dep1
的情况下更改此选项:

"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/me/dep2"
    }
],
"require": {
    "vendor1/dep1": "1.1.1",
    "vendor2/dep2": "dev-master as 1.1.2"
}
如果要替换
1.1.1
1.1.2
,则这些软件包应使用真实版本
dev master as 1.1.2
应该覆盖
dep1
中的约束,并且composer应该使用您的fork中的master分支