PHPにおいて外部ライブラリーを使用するときには、Packagistで公開されているライブラリーをComposerを利用してインストールすることがほとんどかと思います。
インストールしたライブラリーに問題点を見つけ、機能改善やバグ修正を行った場合、通常であればGitHub等にPull Requestを送ってマージされるのを待ちますが、本体に取り込まれるまで時間がかかることがあります。
そういった場合にアプリケーション側の composer.json
を修正して自身のgitレポジトリを参照することで、本体の修正を待たずとも自身で修正を行ったライブラリーを使用することができます。
Repositories Loading a package from a VCS repository – Composer
例えば、friendsofcake/fixturize を利用している場合、オレフォーク nojimage/fixturize の updates
ブランチを使用する場合は以下のように 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のフォークは、オートインクリメントと外部キー制約がある場合の修正を行ったものです。