Composerでオレフォークを利用する方法

標準

PHPにおいて外部ライブラリーを使用するときには、Packagistで公開されているライブラリーをComposerを利用してインストールすることがほとんどかと思います。

インストールしたライブラリーに問題点を見つけ、機能改善やバグ修正を行った場合、通常であればGitHub等にPull Requestを送ってマージされるのを待ちますが、本体に取り込まれるまで時間がかかることがあります。

そういった場合にアプリケーション側の composer.json を修正して自身のgitレポジトリを参照することで、本体の修正を待たずとも自身で修正を行ったライブラリーを使用することができます。

Repositories Loading a package from a VCS repository – Composer

例えば、friendsofcake/fixturize を利用している場合、オレフォーク nojimage/fixturizeupdates ブランチを使用する場合は以下のように composer.json を書き換えます。

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/nojimage/fixturize"
        }
    ],
    "require": {
        "friendsofcake/fixturize": "dev-updates"
    }
}

※composerにおいてブランチを指定する場合は、 dev-{ブランチ名} で指定します。

書換え後にコマンドラインで composer update friendsofcake/fixturize として、ライブラリーを更新します。

repositriesの設定はコマンドラインでも変更できます。

php composer.phar config repositories.friendsofcake/fixturize vcs https://github.com/nojimage/fixturize
php composer.phar require friendsofcake/fixturize:dev-updates

※ 例示のためrequireにしていますが、friendsofcake/fixturizeは開発時用のライブラリーなので本来は require --dev です。

送ったPRが無事マージされたら、repositoriesの設定を解除し本家のレポジトリを参照するようにしましょう。

ちなみに上記fixturizeのフォークは、オートインクリメントと外部キー制約がある場合の修正を行ったものです。

コメントを残す

Page optimized by WP Minify WordPress Plugin