search
LoginSignup
191

More than 3 years have passed since last update.

posted at

updated at

Organization

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

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

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
What you can do with signing up
191