私はこの部分を理解しようとしています: http://getcomposer.org/doc/02-libraries.md#lock-file
このロックファイルは、このロックファイルに依存する他のプロジェクトには影響しません。メインプロジェクトにのみ影響します」
つまり、プロジェクトPがライブラリAに依存し、ライブラリAがライブラリB v1.3に依存している場合、プロジェクトPはライブラリBのバージョンを気にせず、代わりにB 1.4をインストールする可能性があるということですか?その時のポイントは何ですか?
または、依存関係マネージャーに期待するように、逆のことを意味しますか?
Composerの依存関係は、composer.json
で定義されています。 composer=を初めてインストールするとき、またはcomposer=を更新するときにcomposer.lock
というロックファイルが作成されます。
引用されたドキュメントは、ロックファイルのみを参照しています。プロジェクトPがライブラリAに依存し、AがB v1.3。***に依存する場合、誰かが「composer update」を実行してB v1.3.2がインストールされ、プロジェクトにAをインストールするというロックファイルがAに含まれている場合composer.json
(.lock
!ではない)が依存関係を1.3。*に定義しているため、Pはまだ1.3.3をインストールする可能性があります。
ロックファイルには常に正確なバージョン番号が含まれており、テストしたバージョンを同僚に伝えたり、アプリケーションを公開するときに役立ちます。ライブラリの場合、composer.json
の依存関係情報のみが重要です。
composer.lock
は、インストールされている正確なバージョンを記録します。同僚と同じバージョンにいるように。
composer install
composer.lock
ファイルを確認しますcomposer.lock
ファイルを自動生成します(composer update
を使用)composer.lock
ファイルに記録されている指定バージョンをインストールします作曲家の更新
composer.json
ファイルを確認しますcomposer.lock
ファイルをインストール済みバージョンで更新しますだから簡単なチェックリストで。
すべての同僚をあなたと同じバージョンに保ちたい場合...
composer.lock
をGIT(または所有するVC)にコミットしますcomposer.lock
ファイルのそのバージョンを取得するよう依頼してくださいcomposer install
を使用して、正しい依存関係を取得しますシステムの依存関係を新しいバージョンにアップグレードする場合
composer update
を実行しますcomposer.lock
ファイルが最新バージョンに変更されますcomposer install
以下は非常に良い読書になります
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
composer.lock
ファイルのパワーをお楽しみください!
ロックファイルの目的は、インストールされている正確なバージョンを記録して、再インストールできるようにすることです。これは、バージョン仕様が1. *で、同僚がcomposer update
は、1.2.4をインストールし、composer.lockファイルをコミットします(composer install
、1.3.0がリリースされている場合でも、1.2.4を取得します。これにより、プロジェクトで作業している全員が同じバージョンを使用できます。詳細はこちら 作曲者:ロックファイルのすべて