PHP
Composer

composer.jsonのrequireを直接編集してはいけない

More than 1 year has passed since last update.

Composerで依存関係を追加する際に「composer.jsonを編集してrequireに追加してください」といった作業指示が時折見られますが、それはバッドノウハウです。

原則

  • 依存関係を追加・削除するときはコマンドラインから
    • composer require vendor/package で追加
    • composer remove vendor/package で削除
    • composer require --dev vendor/package で開発時に必要なものを追加
    • composer remove --dev vendor/package で開発時に必要なものを削除
  • 本番運用環境と同じバージョン・近い環境で実行する
    • さもなくば、依存パッケージのバージョンを自分で特定しなければならなくなる
  • 依存関係をアップデートするときに引数なしで composer update してはいけない
    • マイナーバージョンを上げるとき: composer update vendor/package
    • 最新のメジャーバージョンに上げるとき: composer require vendor/package
    • 固定のバージョンに依存するとき: composer require vendor/package:1.2.3
      • 強い理由がなければ特定のバージョンには固定しないでください
  • composer.jsoncomposer v (validate) でチェックできます

(それぞれの根拠は気が向いたらちゃんと書きます)