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 を書き換えます。
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "repositories": [ { "type": "vcs", "url": "https://github.com/nojimage/fixturize" } ], "require": { "friendsofcake/fixturize": "dev-updates" } } |
※composerにおいてブランチを指定する場合は、 dev-{ブランチ名}
で指定します。
書換え後にコマンドラインで composer update friendsofcake/fixturize
として、ライブラリーを更新します。
repositriesの設定はコマンドラインでも変更できます。
1 2 3 |
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のフォークは、オートインクリメントと外部キー制約がある場合の修正を行ったものです。