composerの備忘録

Composerの基本的な使い方とコマンド

ComposerはPHPの依存関係管理ツールです。これを使うことで、プロジェクトに必要なライブラリやパッケージを簡単に管理できます。以下では、composer installcomposer updateなどの基本的なコマンドの使い方を説明します。

composer installの使用方法

composer installは、composer.jsonファイルに記述されたパッケージ情報を基に、必要な依存関係をインストールします。
初めてプロジェクトをセットアップする際に使用します。このコマンドが実行されると、依存関係がインストールされるとともに、composer.lockファイルが生成されます。
composer.lockファイルは、インストールされたパッケージのバージョン情報を正確に記録し、他の開発者が同じ環境を再現できるようにします。

二回目以降の使用

プロジェクトに変更がなければ、二回目以降にcomposer installを実行しても、composer.jsonのパッケージ情報は変更されません。
代わりに、composer.lockに記載されたバージョンのパッケージがインストールされます。
これにより、同じプロジェクトを複数人で共有する際に、全員が同じバージョンのパッケージを使用することが保証されます。

パッケージの追加

新しいパッケージをプロジェクトに追加したい場合は、composer requireコマンドを使用します。例えば、guzzlehttp/guzzleというパッケージを追加したい場合、以下のコマンドを実行します。

composer require guzzlehttp/guzzle

このコマンドを実行すると、composer.jsonにそのパッケージが追加されるとともに、composer.lockにもそのパッケージの情報が追加されます。これにより、他の開発者がcomposer installを実行する際に、追加したパッケージがインストールされます。

パッケージのアップデート

パッケージを最新のバージョンに更新したい場合は、composer updateコマンドを使用します。例えば、guzzlehttp/guzzleを最新バージョンにアップデートしたい場合は、以下のコマンドを実行します。

composer update guzzlehttp/guzzle

このコマンドを実行すると、composer.jsonのパッケージ情報が最新のものに更新され、composer.lockにも最新の情報が記載されます。このコマンドを使用することで、依存関係を最新に保つことができます。

まとめ

  • composer installcomposer.jsonに基づいてパッケージをインストールし、composer.lockが生成されます。
  • 以降、composer installを実行すると、composer.lockに基づいてパッケージがインストールされ、composer.jsonの情報は変更されません。
  • 新しいパッケージを追加するにはcomposer requireを使用し、composer.jsoncomposer.lockが更新されます。
  • 既存のパッケージを最新バージョンにアップデートするにはcomposer updateを使用し、composer.jsoncomposer.lockが更新されます

Composerを使用した依存関係管理の慎重な取り扱い

依存関係を慎重に扱いたい場合、Composerには便利なコマンドや技術があります。これらを活用することで、依存関係の変更がプロジェクトに与える影響を最小限に抑えることができます。以下では、dry-runwhyコマンドをはじめとする、慎重に依存関係を管理するためのコマンドやバックアップ方法について紹介します。

composer update –dry-run — 実行前に変更内容を確認

composer updateコマンドを実行する前に、変更内容を確認するための安全策として--dry-runオプションを使用できます。このオプションを使うことで、実際にパッケージを更新せずに、どのパッケージがアップデートされるか、どのような変更が行われるかを確認できます。

composer update --dry-run

このコマンドを実行すると、依存関係の変更内容が表示されるので、問題が発生する前に確認できます。

composer why — 依存関係の原因を調査

composer whyコマンドは、特定のパッケージがどの依存関係によって要求されているかを調査するための便利なツールです。これを使うことで、特定のパッケージがプロジェクトにどのように影響を与えているかを確認できます。

composer why <package-name>

例えば、guzzlehttp/guzzleが依存関係に含まれている場合、以下のコマンドでその詳細を確認できます。

composer why guzzlehttp/guzzle

これにより、依存関係がどのパッケージから要求されているのかを調べることができます。

composer show — インストール済みパッケージの確認

composer showコマンドを使用すると、現在インストールされているすべてのパッケージとそのバージョンを確認できます。このコマンドは、プロジェクトにどのパッケージがインストールされているかを把握するために役立ちます。

composer show

パッケージ名を指定して、そのパッケージの詳細情報を確認することもできます。

composer show <package-name>

これにより、インストールされているパッケージのバージョンや依存関係を詳細に確認できます。

バックアップ方法 — 重要なファイルのバックアップ

依存関係を更新する前に、composer.jsonおよびcomposer.lockファイルをバックアップすることを強くお勧めします。これにより、万が一の問題が発生した場合に元の状態に戻すことができます。

  1. composer.jsonのバックアップ
cp composer.json composer.json.bak
  1. composer.lockのバックアップ
cp composer.lock composer.lock.bak

これで、composer.jsoncomposer.lockに問題が発生した場合に、バックアップファイルを元に戻すことができます。

まとめ

依存関係を慎重に扱いたい場合、以下のコマンドや技術が役立ちます。

  • composer update --dry-runを使用して、更新前に変更内容を確認する。
  • composer whyを使って、特定のパッケージがどの依存関係から要求されているかを調べる。
  • composer showを使って、インストールされているパッケージとそのバージョンを確認する。
  • composer.jsoncomposer.lockのバックアップを取り、必要に応じて元に戻せるようにする。
  • バージョン管理ツール(Gitなど)を使用して、変更履歴を管理し、必要に応じて元に戻す。