composer は、php の依存関係管理ツールです。これにより、プロジェクトが依存するコード ライブラリを宣言でき、それらがプロジェクトにインストールされます。
しかし、初心者にとっては「インストール」の方法がわからないかもしれません。
インターネット上の回答には、composer install という回答もあれば、composer update という回答もあり、どちらも依存関係を正常にダウンロードしてインストールできるようです。では、両者の違いは何でしょうか?
関連する推奨事項: 「composer チュートリアル」
最初に理解する必要があるのは、すべての依存関係が combos.json で定義されていることと、いくつかの基本的な使用法です。例はマニュアルに記載されています。バージョン番号を指定するときに、必ずしも正確なバージョンを指定するとは限らないことに気づいたかもしれません。その場合、同じcomposer.jsonに対して、異なる時点でプルする依存関係ファイルが異なる可能性があり(composerは、条件が満たされたときに最新の依存関係をプルするため)、何らかの異常な状況が発生する可能性があります。
composer update と Composer install がこの問題を解決するようです。
composer update を実行すると、composer.json で指定された依存関係を読み取り、分析し、条件を満たす最新バージョンの依存関係を取得します。次に、プルした依存関係をベンダー ディレクトリに置き、すべてのプルした依存関係の正確なバージョン番号をcomposer.lock ファイルに書き込みます。
composer のインストールで行うことは、最初のステップを除いて非常に似ています。ローカルにcomposer.lockのコピーがすでにある場合、composer.jsonの代わりにcomposer.lockを読み取り、これを依存関係をダウンロードするための標準として使用します。ローカルにcomposer.lockがない場合、その動作は実際にはcomposerのアップデートと変わりません。
これは、composer.lock のコピーがローカルにある限り、どれだけ時間がかかっても同じ依存関係を取得できることを保証できることを意味します。また、これをプロジェクトのバージョン管理に組み込むと、システムに関係なく、プロジェクト内の全員とすべてのコンピューターがまったく同じ依存関係を取得して、潜在的な依存関係を減らすことができます。もちろん、使用するコマンドはcomposer installであることを覚えておいてください。
それでは、いつ Composer Update を使用すればよいのでしょうか?依存関係を変更するとき、新しい依存関係を追加するか、依存関係のバージョンを変更するか、依存関係を削除するかに関係なく、この時点でコンポーザーのインストールを実行しても変更はありませんが、警告メッセージ
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.が表示されます。
依存関係が変更されたこと、またはcomposer.lockの有効期限が切れたことをphpがどのようにして知るのかに興味がある人もいるかもしれません。それは非常に簡単で、composer.lock を開くと、その中にハッシュ フィールドがあり、これがその時点で対応する依存関係のハッシュ値です。値が一致していなければ、当然変化が生じていることが分かります。
現時点では、composer update を通じて依存関係を更新する必要があります。
インストールされている他の依存関係に影響を与えず、変更した部分のみを更新する場合は、ホワイトリストを指定して更新範囲を決定できます。たとえば、composer update monolog/monolog は、monolog/Monlog のみを更新します。は依存関係であり、他の依存関係は更新されても無視されます。
以上がComposer コマンドの概要: インストールとアップデート、およびそれらの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。