回答:
作曲家の更新
composer update
で指定されているように依存関係を更新します composer.json
たとえば、このパッケージを依存関係として必要とする場合:
"mockery/mockery": "0.9.*",
実際に0.9.1
パッケージのバージョンをインストールした場合、実行composer update
するとこのパッケージがアップグレードされます(たとえば0.9.2
、すでにリリースされている場合は)
詳細composer update
は:
composer.json
composer.json
composer.lock
インストールされたパッケージのバージョンを保存するための更新作曲家のインストール
composer install
何も更新しません。composer.lock
ファイルに指定されているすべての依存関係をインストールします
詳細に:
composer.lock
ファイルが存在するかどうかを確認します(存在しない場合は、実行composer-update
して作成します)composer.lock
ファイルを読むcomposer.lock
ファイルで指定されたパッケージをインストールしますインストールするタイミングと更新するタイミング
composer update
主に「開発フェーズ」で使用され、composer.json
ファイルで指定した内容に従ってプロジェクトパッケージをアップグレードします。
composer install
主に「デプロイ段階」で使用され、composer updateによって作成されたcomposer.lockファイルに格納されている同じ依存関係を使用して、本番サーバーまたはテスト環境にアプリケーションをインストールします。
composer global update
ローカルシステムのグローバルリポジトリの依存関係を更新します(COMPOSER_HOME
composer update
ローカルシステムで実行してアプリケーションをテストし、次にcomposer.lockを運用サーバーにアップロードして実行する必要がありますcomposer install
composer install
composer.lock
が存在しません。
composer.lock
ファイルから依存関係を処理してインストールします。composer.lock
んではないが存在します。
composer.json
。composer.lock
インストールされたパッケージに基づいてファイルを作成します。に従ってcomposer help install
::
installコマンド
composer.lock
は、現在のディレクトリからファイルを読み取り、それを処理して、そのファイルで説明されているすべてのライブラリと依存関係をダウンロードしてインストールします。ファイルが存在しない場合composer.json
は、同じことを探して実行します。
composer update
composer.json
ファイルの依存関係を処理します(インストール、更新、削除)。composer.lock
変更に応じてファイルを作成または更新します。に従ってcomposer help update
::
updateコマンド
composer.json
は、現在のディレクトリからファイルを読み取って処理し、すべての依存関係を更新、削除、またはインストールします。
間の最良の違いcomposer update
とcomposer install
作曲家のインストール
依存関係を追加するには、手動でcomposer.jsonファイルに追加する必要があります。
composer.lockファイルが存在する場合は、このファイルに指定されているものを正確にインストールします
このコマンドで更新されるコンポーネントはありません。
作曲家の更新
依存関係を追加または削除するには、手動でcomposer.jsonファイルに追加する必要があります
できない場合(または実際に簡単なライブラリの追加または削除方法がわからない場合は、ファイルのrequireプロパティに依存関係とバージョンの名前を追加するだけ)composer.jsonファイルを手動で変更するか、代わりにコマンドラインを使用することをお勧めします。composerには、このための特別な機能があります。
作曲家が必要
たとえば、コマンドラインで依存関係を追加したい場合は、単に実行します
composer require twig/twig
作曲家削除
未使用の依存関係を削除したい場合は、単純に実行します。
composer remove twig/twig --update-with-dependencies
if(composer.lock existed){
installs dependency with EXACT version in composer.lock file
} else {
installs dependency with LATEST version in composer.json
generate the composer.lock file
}
composer update = remove composer.lock -> composer install
2つのコマンドが必要な理由。composer.lockで説明できると思います。
想像して、私たちはしないでください持っているcomposer.lock
としてcomposer.json
、そこに依存性があります"monolog/monolog": "1.0.*"
か"monolog/monolog": "^1.0"
。
次に、いくつかのケースがあります
composer install
時間が異なる場合、依存関係のバージョンが異なる場合があります。composer.json
などで常にEXACTバージョンを使用するとどうなり"monolog/monolog": "1.0.1"
ますか?依存関係のメインバージョンを追跡するだけで、依存関係の依存関係のバージョンを追跡することはできないため、
依然として必要です。composer.lock
composer.json
依存関係のすべての依存関係がEXACTバージョンも使用している場合はどうなりますか?
EXACTバージョンを使用するすべての依存関係から始めて、気にしないと想像してみてくださいcomposer.lock
。ただし、数か月後、新しい依存関係を追加(または古い依存関係を更新)し、この依存関係の依存関係はEXACTバージョンを使用しません。それからcomposer.lock
、最初は気にかける方がいいです。
その上、正確なバージョンよりもセマンティックバージョンの利点があります。開発中に依存関係を何度も更新する可能性があり、ライブラリにはバグ修正などの小さな変更が含まれていることがよくあります。その後、セマンティックバージョンを使用する依存関係をアップグレードする方が簡単です。