LoginSignup
208
196

More than 5 years have passed since last update.

composer.json、composer.lockって何なの?という人向けのまとめ

Last updated at Posted at 2015-01-20

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が最新に上書きされる
208
196
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
208
196