阻止在PHP Composer中安装包以使用包的分支
我正在与Behat和Composer合作进行一个项目。我必须为Mink和Mink Selenium 2驱动程序创建一个fork和补丁来处理弹出窗口。目前,这些修补程序仍在由管理我分出的回购协议的人进行审查。因此,在此同时,我想使用我的fork版本 我已经将我的存储库添加到composer,它们正在被拉入。但是,“behat/mink”包仍在安装中,因为“behat/mink扩展”需要它。问题是它也可以用我的叉子。所以我想让它只拉我的,而不是“behat/mink”包 我能做这个吗?我可以用我的叉子阻止一个包所需的包吗阻止在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”包 我能做这个吗?我可以用我的叉
谢谢 你无法真正阻止它们。您可以禁用从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。当我最初阅读此文档时,我很难跟上。但读完这篇文章后:我终于有点明白了。