阻止在PHP Composer中安装包以使用包的分支

阻止在PHP Composer中安装包以使用包的分支,php,github,composer-php,behat,mink,Php,Github,Composer Php,Behat,Mink,我正在与Behat和Composer合作进行一个项目。我必须为Mink和Mink Selenium 2驱动程序创建一个fork和补丁来处理弹出窗口。目前,这些修补程序仍在由管理我分出的回购协议的人进行审查。因此,在此同时,我想使用我的fork版本 我已经将我的存储库添加到composer,它们正在被拉入。但是,“behat/mink”包仍在安装中,因为“behat/mink扩展”需要它。问题是它也可以用我的叉子。所以我想让它只拉我的,而不是“behat/mink”包 我能做这个吗?我可以用我的叉

我正在与Behat和Composer合作进行一个项目。我必须为Mink和Mink Selenium 2驱动程序创建一个fork和补丁来处理弹出窗口。目前,这些修补程序仍在由管理我分出的回购协议的人进行审查。因此,在此同时,我想使用我的fork版本

我已经将我的存储库添加到composer,它们正在被拉入。但是,“behat/mink”包仍在安装中,因为“behat/mink扩展”需要它。问题是它也可以用我的叉子。所以我想让它只拉我的,而不是“behat/mink”包

我能做这个吗?我可以用我的叉子阻止一个包所需的包吗


谢谢

你无法真正阻止它们。您可以禁用从packagist.org获取信息,但这将影响所有软件包

您应该做的是为behat/mink添加一个别名。看


为避免分支别名,请使用内联别名。

是的,您只需将fork列为要使用的存储库,Composer将自动优先于原始包包含fork

如果您正在为您的项目使用某个库,并且您决定 更改库中的某些内容,您将希望您的项目使用 补丁版本。如果库位于GitHub上(大多数情况下都是这种情况) 时间),您可以简单地将更改推到您的 叉然后更新项目的composer.json。你所有的 要做的是将fork添加为存储库并更新版本 约束以指向自定义分支

有人修改独白的一个例子。然后,他们告诉Composer使用他们的存储库

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/igorw/monolog"
        }
    ],
    "require": {
        "monolog/monolog": "dev-bugfix"
    }
}
Composer将扫描
https://github.com/igorw/monolog
并优先于PackageGist上提供的Monolog版本使用它们

您还可以告诉Composer使用本地目录而不是HTTP地址

"repositories": [
        {
            "type": "vcs",
            "url": "/documents/project/igorw/monolog"
        }
    ],

这使您可以开发库,在另一个项目中使用它并测试它,而无需在每次编辑和测试之间推送到Github。

当我最初阅读此文档时,我很难跟上。但读完这篇文章后:我终于有点明白了。