簡體   English   中英

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

[英]Blocking a package install in PHP Composer to use a fork of the package

我正在與Behat和Composer合作開展一個項目。 我不得不為Mink和Mink Selenium 2驅動程序創建一個fork和patch來處理彈出窗口。 目前,管理我分配的回購的人仍在審核補丁。 所以在同一時間我想使用我的fork版本。

我已經將我的存儲庫添加到作曲家並且它們被拉入。但是“behat / mink”包仍在安裝,因為“behat / mink-extension”需要它。 問題是它也可以使用它的叉子。 所以我想讓它只用我的而不是“behat / mink”包。

我可以這樣做嗎? 我可以阻止包的必需包,而不是我的fork嗎?

謝謝!

是的,您需要做的就是將fork列為要使用的存儲庫,Composer將自動包含fork而不是原始包。 從文檔中

如果您正在為項目使用某個庫,並且決定更改庫中的某些內容,則需要您的項目使用修補版本。 如果庫在GitHub上(大多數時候都是這種情況),你可以簡單地將它分叉並將更改推送到fork。 之后,您更新項目的composer.json。 您所要做的就是將您的fork添加為存儲庫並更新版本約束以指向您的自定義分支。

有人修補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。

你不能真正阻止它們。 您可以禁用從packagist.org獲取信息,但這會影響所有包。

你應該做的是添加behat / mink的別名。 請參閱composer別名的文檔

盡量避免使用分支別名,使用內聯別名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM