PHP初心者のためのComposer:依存関係とオートローディング
新しいPHPプロジェクトを始めて、ログやHTTPリクエスト用のライブラリが必要になったとします。コードをコピー&ペーストしますが、すぐに散らかってしまいます。外部ライブラリを適切に管理するにはどうすればよいでしょうか? Composerは依存関係とオートローディングを処理することでこれを解決します。このガイドでは、Composerをゼロから使う方法を学びます。
Composerとは?
ComposerはPHPの依存関係マネージャーです。プロジェクトが依存するライブラリを宣言し、それらを管理することができます。aptやyumのようなパッケージマネージャーではなく、プロジェクトごとに動作し、依存関係をvendorディレクトリにインストールします。
Composerのインストール
まず、ターミナルでcomposer --versionを実行して、Composerが既にインストールされているか確認します。インストールされていない場合は、getcomposer.orgからダウンロードしてインストールします。WindowsではComposer-Setup.exeインストーラーを使用します。macOS/Linuxではインストーラースクリプトを実行します。
composer.jsonファイルの作成
すべてのComposerプロジェクトには、依存関係を記述するcomposer.jsonファイルがあります。手動で作成するか、次のコマンドを実行します:
composer init
この対話型コマンドは、パッケージ名、説明、著者、依存関係を尋ねます。今は依存関係の追加をスキップして、後でファイルを編集することができます。
依存関係の追加
ライブラリを追加するには、composer requireを使用します。たとえば、人気のあるmonolog/monologロギングライブラリを追加するには:
composer require monolog/monolog
Composerはライブラリとその依存関係をvendorディレクトリにダウンロードし、composer.jsonとcomposer.lockを更新します。
バージョン制約の理解
Composerはセマンティックバージョニングを使用します。一般的な制約:
^1.2は1.xへの更新を許可しますが、2.0は許可しません(ライブラリに推奨)。~1.2は1.2.xへの更新を許可しますが、1.3は許可しません。1.2.*は任意の1.2.xバージョンを許可します。>=1.2