「composer install」と「composer update」、「composer.json」と「composer.lock」の違い
CakePHPではcomposer使いますよね。
初心者で何かよくわからず使っている方、多いんじゃないかと思ってます。
「composer install」と「composer update」の違いがよくわからない…とかあるあるです。
なんかこの違いを間違えただけでシステムが動かなくなる…とか聞いたことあって、勝手に怯えてました。
なのでcomposerは大事です。
- 「composer install」と「composer update」の違いをざっくり
- 「composer install」をする
- 「composer update」をする
- 「composer install」と「composer update」の使いどころの違い
- ここで疑問、「composer.json」と「composer.lock」の違いは?
- 「composer.json」と「composer.lock」の違いの要点
- 終わりに
【自分の環境】
macOS Catalina
PHP7.4.2
CakePHP3.8
MAMP5.7
Apache2.2
MySQL5.7
「composer install」と「composer update」の違いをざっくり
ざっくりですが、以下の違いです。
「composer install」をする
「composer.json」は無視され、「composer.lock」の内容を元にライブラリがインストールされます。
この時「composer.lock」はもちろん内容を参照されますが、更新はされません。
「composer update」をする
「composer.json」の内容を元にライブラリがインストールまたはアップデートされます。
またその結果で「composer.lock」の内容が更新されます。
「composer install」と「composer update」の使いどころの違い
composer installは0から環境を作りたいときだと思います。
他人の環境を持ってきたい、別のプロジェクトでも読み込ませたい…などでしょうか。
composer updateはライブラリを追加したいときだと思います。
何かを作っている途中に使われますね。
ここで疑問、「composer.json」と「composer.lock」の違いは?
そういう疑問が生まれると思います。
違いをざっくりですが、以下にまとめました。
◎json
・自分で記述して作成
・1回目のcomposer installをするとlockを生成
・composer updateでこの内容を元にライブラリをインストールやアップデート
◎lock
・1回目のcomposer installで自動作成
・composer installでこの内容を元にインストール
・composer updateでこの内容が更新
「composer.json」と「composer.lock」の違いの要点
①jsonは手動で作る、lockは自動で作られる
②jsonを元にlockを作成、lockはjsonを元に作られる
③「composer update」ではjsonを元に動き、lockは更新されるだけ
こんなかんじでしょうか。
終わりに
以上となります。
かなりざっくりなのですが、要点をまとめてみました。
自分も実践の機会が少なく、まだわかっていません。
間違いがあればコメントで指摘していただきたいです。
これが勉強のきっかけになれば嬉しいです。
ありがとうございました。