90

私はこの部分を理解しようとしています:http://getcomposer.org/doc/02-libraries.md#lock-file

このロックファイルは、それに依存する他のプロジェクトには影響しません。メインプロジェクトにのみ影響します」

つまり、プロジェクトPがライブラリAに依存し、ライブラリAがライブラリB v1.3に依存している場合、プロジェクトPはライブラリBのバージョンを気にせず、代わりにB 1.4をインストールする可能性がありますか?では、ポイントは何ですか?

それとも、依存関係マネージャーに期待されるように、それは反対の意味ですか?

4

3 に答える 3

102

composer.lockインストールされている正確なバージョンを記録します。同僚と同じバージョンになるようにします。

Composerのインストール

  • composer.lockファイルを確認する
  • そうでない場合は、ファイルを自動生成しcomposer.lockます(を使用composer update
  • composer.lockファイルに記録されている指定されたバージョンをインストールします

作曲家のアップデート

  • composer.jsonファイルを確認する
  • 上記のバージョン基準(例:1.12。*)に基づいて、新しい(最新の)バージョンの可用性を確認します。
  • 可能な最新の(上記に従って)バージョンをインストールします
  • composer.lockインストールされているバージョンでファイルを更新する

簡単なチェックリストで。

すべての同僚をあなたと同じバージョンに保ちたい場合...

  • composer.lockGIT(またはお持ちのvcs)にコミットします
  • そのバージョンのcomposer.lockファイルを入手するように他の人に依頼する
  • 常に composer install正しい依存関係を取得するために使用します

システムの依存関係を新しいバージョンにアップグレードする場合

  • バージョン仕様については、composer.jsonファイルを確認してください。
  • 行うcomposer update
  • これにより、composer.lockファイルが最新バージョンに変更されます
  • GIT(またはvcs)にコミットします
  • 他の人にそれを手に入れてもらい、composer install

以下は非常に良い読み物になり
ますhttps://blog.engineyard.com/2014/composer-its-all-about-the-lock-file

composer.lockファイルの力をお楽しみください!

于 2016-09-15T02:06:02.320 に答える
83

Composerの依存関係はで定義されていcomposer.jsonます。初めてcomposerinstallを実行するとき、またはcomposer updateを実行するときに、というロックファイル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は依存関係情報だけです。

于 2012-05-20T21:52:59.170 に答える
5

ロックファイルのポイントは、再インストールできるように、インストールされている正確なバージョンを記録することです。つまり、バージョン仕様が1. *で、同僚が実行composer updateして1.2.4をインストールし、composer.lockファイルをコミットすると、composer install1.3.0であっても、1.2.4も取得されます。リリースされました。これにより、プロジェクトで作業するすべての人が同じ正確なバージョンを持つことが保証されます。詳細はこちらComposer:ロックファイルがすべてです

于 2017-06-05T05:19:38.790 に答える