tohokuaikiのチラシの裏

技術的ネタとか。

今更ですが、Composer.pharがinstallとupdateでcomposer.json/.lockを見て何をしているかを図解

基本的に、下記の事項を覚えておけば挙動は理解しやすい。

  • installは.lockを見てその通りに実行する
  • updateは、.jsonを見て依存性を解決する

composer.phar install を実行した場合にcomposer.lockの有無による挙動の違い

f:id:tohokuaiki:20161213171954p:plain

.lockがあれば待ち時間は少なくて済む。

composer.json を更新した際に、installとupdateでは何が違うのか?

ライブラリを追加したい場合にcomposer.jsonに記載したあと、それぞれのコマンドを打った場合。

install 実行

installは.lockファイルを見るだけなのでライブラリの追加は行われない。

f:id:tohokuaiki:20161213172108p:plain

update 実行

updateは.jsonを見て依存性を解決する。そのため追記したライブラリの依存性を解決しダウンロードが行われる。

f:id:tohokuaiki:20161213172150p:plain