composer.jsonとは
依存するパッケージを定義するためのファイル。
自分で作成するか、composer initで対話的に作成できる。
iniコマンドでは、Public RepositoryであるPackagistから依存パッケージを検索・選択することが出来る。
Packagistとは
composerの中央公開リポジトリ。だれでもパッケージを公開できる。
facebookのsdkやphpunitなど様々なパッケージが公開されてます。
composer.jsonの中身
composer.json
{
"require" : {
"facebook/php-sdk" : "4.0.*"
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
}
}
requireについて
- 依存をパッケージ名:バージョンで指定する
- バージョンは"1.0.*"のようなワイルドカードなどが使える
require-devについて
- 開発時のみに依存するパッケージを書く
依存するパッケージをインストールする
composer installを実行する
- composer.jsonを元に依存解決し、パッケージのダウンロードを行いvendor/に配置される
- composer.lockというファイルが同階層にない場合はダウンロードしたパッケージのバージョン情報を書き出す。
composer.lockを更新したい場合はcomposer update
を使う
composer.lockについて
- installコマンド実行時に、composer.lockファイルが存在する場合はcomposer.lockに書きだされているバージョンをダウンロードする。
- チーム間で同じバージョンをダウンロードするためなので、composer.lockも一緒にコミットをすること。
2015年11月17日追記
特定のパッケージのみ更新したい場合
- composer.jsonの値を更新したいバージョンに書き換える
-
composer update [更新したいパッケージ名]
を実行 - 更新後のライブラリがインストールされ、composer.lockが最新に上書きされる