composer.lockとcomposer.jsonの違い。composer installとcomposer updateの使い方


composerとは

必要なライブラリを管理できるパッケージ管理システムのこと

composer.jsonとは

依存するライブラリの定義を記述するファイル

  • composer installを実行する際にはこのjsonファイルの定義を元にパッケージのダウンロードを行う
  • パッケージのダウンロードの際にcomposer.lockファイルが存在しない場合はダウンロードしたバージョン情報をlockファイルに書き出される

composer.lockとは

  • composer installを実行した際にこのlockファイルに書き出されているVersionのパッケージをダウンロードする
  • lockファイルにはバージョン情報のハッシュ値が書き出されている
  • これによりlockファイルを基準にすることでチーム開発において全員が同じバージョンのライブラリを使用できる

まとめ

要約すると

composer.lockは

composer installでlockに書き出されて各バージョンのライブラリをダウンロードする

composer.jsonは

composer updateでjsonの定義を元に各バージョンのライブラリををアップデートする
updateの際はcomposer.lockファイルのハッシュ値も更新される