[PHP]Composerでパッケージの特定revisionのコミット内容を取得する

カテゴリ: composer

PHPでComposer管理されているパッケージを取得する際に、gitの特定リビジョンの内容を取得してくる方法を説明します。

packagist.orgに登録されているほかの人が作ったパッケージを利用する際は、あまり使うことはありませんが、パッケージを自分で作っていて、ブランチ上で修正内容をコミットしたものが問題ないかチェックするときに使うと便利です。

普通に最新リビジョンを取得する場合

まずは、普通にrequireします。この場合、バージョンを指定していないので最新の安定板が取得できます。

> composer require nikic/fast-route

Using version ^1.2 for nikic/fast-route
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing nikic/fast-route (v1.2.0): Loading from cache
Writing lock file
Generating autoload files

リビジョンを指定してパッケージを取得

次は、gitにコミットされたリビジョン指定で、パッケージを取得してくるときの例です。

例えば、masterブランチのリビジョンf97a78b2264f2d7fc0506f86ab1d14b7d1cbf17dのコミット内容を取得したい場合は、以下の様にパッケージ名の後に、dev-master#f97a78b2264f2d7fc0506f86ab1d14b7d1cbf17dの形式で指定します。

> composer require nikic/fast-route dev-master#f97a78b2264f2d7fc0506f86ab1d14b7d1cbf17d

./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 1 update, 0 removals
  - Removing nikic/fast-route (v1.2.0)
  - Installing nikic/fast-route (dev-master f97a78b): Cloning f97a78b226 from cache
Writing lock file
Generating autoload files

リビジョン番号の指定方法

パッケージ名の後に指定されているdev-master#f97a78b...で、特定リビジョンを指定しています。

dev-は、特定のバージョン番号がついていない開発中のものを取得するという意味です。

masterは、ブランチ名です。もし、developブランチの内容がほしい場合は、dev-develp#...と指定すればよいです。

最後のf97a78b...は、取得したいgitのリビジョン名です。

composer.jsonに記述するときの記述方法

コマンドラインからの指定ではなくcomposer.jsonで指定する場合は、以下の様にします。表記の書式はコマンドラインで指定したときと同様です。

{
    "require": {
        "nikic/fast-route": "dev-master#f97a78b2264f2d7fc0506f86ab1d14b7d1cbf17d"
    }
}
こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。