0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

composer.jsonとcomposer.lock

Posted at

composerとは

PHPのパッケージ・ライブラリ管理ツール

  • パッケージのインストールが楽にできる
  • パッケージの依存関係を考えなくてよくなる
  • チーム開発でパッケージやパッケージのバージョンを統一できる

composer.jsonとcomposer.lockの役割

最初に使用されるのがcomposer.json
composer installをしたら、composer.jsonに書かれた情報を基にパッケージやライブラリがvendorディレクトリ配下にまとめてインストールされる。

このとき同時にcomposer.lockファイルが生成される。
composer install時に参照したパッケージやパッケージのバージョン情報がcomposer.lockに書き込まれる。

そして二回目以降 composer installをした際は、composer.jsonではなくcomposer.lock が参照される。

つまり、composer.lockがある場合は、composer installをしても、単にcomposer.lockを参照してライブラリをインストールするだけで、何かパッケージの情報(パッケージの追加とかバージョン情報とか)が書き換わることはない。

composer install

composer.lockがない場合 
→ composer.jsonを元にライブラリをインストールし、composer.lockを生成

composer.lockがある場合 
→ composer.lockを元にライブラリをインストール

composer update

composer.jsonにパッケージを追加する等の変更を加えて、composer updateをすると、composer.jsonの情報を基にライブラリが最新の状態に更新される。

そしてこのとき、最新にしたパッケージやライブラリの情報がcomposer.lockに書き込まれる(composer.lockが更新される)

これ以降は、先ほどまでと同様に、composer installをすると、composer.lockを基に最新のライブラリがアプリにインストールされる。

まとめ

  • composer.json
    → 使用するパッケージとバージョンの指定。手動で編集する。

  • composer.lock
    → 実際にインストールされたパッケージのバージョンを固定化する。自動生成。

  • composer install
    → composer.lock があればそれを参照してインストール。なければ .json を元に生成

  • composer update
    → .json の内容を元にパッケージを更新し、composer.lock を上書き

参考記事

composer.jsonとcomposer.lockの役割について分かりやすくまとめてみた

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?