编程语言
首页 > 编程语言> > 在PHP Composer中阻止程序包安装以使用程序包的分支

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

作者:互联网

我正在与Behat和Composer合作开展一个项目.我不得不为Mink和Mink Selenium 2驱动程序创建一个fork和patch来处理弹出窗口.目前,管理我分配的回购的人仍在审核补丁.所以在同一时间我想使用我的fork版本.

我已经将我的存储库添加到作曲家并且它们被拉入.但是“behat / mink”包仍在安装,因为“behat / mink-extension”需要它.问题是它也可以使用它的叉子.所以我想让它只用我的而不是“behat / mink”包.

我可以这样做吗?我可以阻止包的必需包,而不是我的fork吗?

谢谢!

解决方法:

是的,您需要做的就是将fork列为要使用的存储库,Composer将自动包含fork而不是原始包. From the documentation

If you are using a certain library for your project and you decide to
change something in the library, you will want your project to use the
patched version. If the library is on GitHub (this is the case most of
the time), you can simply fork it there and push your changes to your
fork. After that you update the project’s composer.json. All you have
to do is add your fork as a repository and update the version
constraint to point to your custom branch.

有人修补Monolog的例子.然后他们告诉Composer使用他们的存储库.

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/igorw/monolog"
        }
    ],
    "require": {
        "monolog/monolog": "dev-bugfix"
    }
}

Composer将扫描https://github.com/igorw/monolog中提供的所有版本,并优先使用Packagist上提供的Monolog版本.

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

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

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

标签:behat,mink,php,github,composer-php
来源: https://codeday.me/bug/20190723/1509181.html