はじめに#

Composerは、PHPの依存関係管理ツールです。プロジェクトが依存するライブラリを宣言すると、Composerがそれらのライブラリのインストールとアップデートを管理します。

依存関係管理#

Composerは、YumやAptのようなパッケージマネージャとは**異なります**。「パッケージ」またはライブラリを扱いますが、プロジェクトごとに管理し、プロジェクト内のディレクトリ(例:vendor)にインストールします。デフォルトでは、グローバルには何もインストールしません。したがって、依存関係マネージャです。globalコマンドを使用することで、便宜上「グローバル」プロジェクトをサポートしています。

この考え方は新しいものではなく、ComposerはNode.jsのnpmやRubyのbundlerから強く影響を受けています。

例えば

  1. 複数のライブラリに依存するプロジェクトがあるとします。
  2. これらのライブラリの中には、他のライブラリに依存するものもあります。

Composer

  1. 依存するライブラリを宣言できます。
  2. インストール可能なパッケージのバージョンを特定し、それらをインストールします(プロジェクトにダウンロードします)。
  3. 1つのコマンドで全ての依存関係を更新できます。

依存関係の宣言の詳細については、基本的な使用方法の章を参照してください。

システム要件#

最新バージョンのComposerは、実行にPHP 7.2.5以降が必要です。長期サポート版 (2.2.x) は、レガシーなPHPバージョンを使用している場合に備え、PHP 5.3.2+へのサポートを提供しています。いくつかの重要なPHP設定とコンパイルフラグも必要ですが、インストーラを使用すると、非互換性に関する警告が表示されます。

Composerは、効果的に動作するためにいくつかのサポートアプリケーションを必要とし、パッケージ依存関係の処理プロセスをより効率的にします。ファイルの解凍には、7z(または7zz)、gziptarunrarunzipxzなどのツールを使用します。バージョン管理システムに関しては、ComposerはFossil、Git、Mercurial、Perforce、Subversionとシームレスに統合し、アプリケーションの円滑な動作とライブラリリポジトリの管理を保証します。Composerを使用する前に、これらの依存関係がシステムに正しくインストールされていることを確認してください。

Composerはマルチプラットフォームであり、Windows、Linux、macOSで同等の動作をするよう努めています。

インストール - Linux / Unix / macOS#

Composer実行ファイルのダウンロード#

Composerは、コマンドラインから直接実行できる便利なインストーラを提供しています。このファイルをダウンロードするか、GitHubで確認して、インストーラの内部動作の詳細を知ることができます。ソースコードはプレーンなPHPです。

簡単に言うと、Composerをインストールする方法は2つあります。プロジェクトの一部としてローカルにインストールするか、システム全体で実行可能なファイルとしてグローバルにインストールするかです。

ローカルインストール#

Composerをローカルにインストールするには、プロジェクトディレクトリでインストーラを実行します。ダウンロードページを参照して手順を確認してください。

インストーラはいくつかのPHP設定をチェックし、作業ディレクトリにcomposer.pharをダウンロードします。このファイルはComposerバイナリです。PHAR(PHPアーカイブ)であり、コマンドラインなどで実行できるPHPのアーカイブ形式です。

Composerを実行するには、php composer.pharを実行します。

--install-dirオプションを使用してComposerを特定のディレクトリにインストールし、--filenameオプションを使用して名前を変更することもできます。ダウンロードページの手順に従ってインストーラを実行する際に、以下のパラメータを追加します。

php composer-setup.php --install-dir=bin --filename=composer

Composerを実行するには、php bin/composerを実行します。

グローバルインストール#

Composer PHARは好きな場所に配置できます。PATHに含まれるディレクトリに配置すれば、グローバルにアクセスできます。Unixシステムでは、実行可能にして、phpインタプリタを使わずに呼び出すこともできます。

ダウンロードページの手順に従ってインストーラを実行した後、以下のコマンドを実行してcomposer.pharをPATHに含まれるディレクトリに移動できます。

mv composer.phar /usr/local/bin/composer

ルート権限を必要とせずに、ユーザー専用にインストールしたい場合は、一部のLinuxディストリビューションでデフォルトで使用可能な~/.local/binを使用できます。

注記: 権限が原因で上記の操作に失敗する場合は、sudoを使用して再度実行する必要があるかもしれません。

注記: 一部のmacOSバージョンでは、/usrディレクトリがデフォルトで存在しません。「/usr/local/bin/composer: No such file or directory」というエラーが発生する場合は、先にディレクトリを手動で作成する必要があります: mkdir -p /usr/local/bin

注記: PATHの変更方法については、Wikipediaの記事を参照するか、お好みの検索エンジンを使用してください。

php composer.pharではなくcomposerを実行してComposerを実行します。

インストール - Windows#

インストーラの使用#

これは、Composerをマシンに設定する最も簡単な方法です。

Composer-Setup.exeをダウンロードして実行します。最新のComposerバージョンがインストールされ、PATHが設定されるため、コマンドラインの任意のディレクトリからcomposerを呼び出すことができます。

注記: 現在のターミナルを閉じます。新しいターミナルで使用方法をテストしてください。これは、PATHはターミナルの起動時にのみロードされるため重要です。

手動インストール#

PATH上のディレクトリに変更し、ダウンロードページの手順に従ってインストーラを実行してcomposer.pharをダウンロードします。

composer.pharと一緒に新しいcomposer.batファイルを作成します。

cmd.exeを使用

C:\bin> echo @php "%~dp0composer.phar" %*>composer.bat

PowerShellを使用

PS C:\bin> Set-Content composer.bat '@php "%~dp0composer.phar" %*'

まだ追加されていない場合は、PATH環境変数にディレクトリを追加します。PATH環境変数の変更方法については、この記事を参照するか、お好みの検索エンジンを使用してください。

現在のターミナルを閉じます。新しいターミナルで使用方法をテストしてください。

C:\Users\username>composer -V
Composer version 2.4.0 2022-08-16 16:10:48

Dockerイメージ#

Composerはいくつかの場所でDockerコンテナとして公開されています。composer/docker READMEのリストを参照してください。

使用例

docker pull composer/composer
docker run --rm -it -v "$(pwd):/app" composer/composer install

既存のDockerfileにComposerを追加するには、事前にビルドされたサイズの小さいイメージからバイナリファイルをコピーするだけです。

# Latest release
COPY --from=composer/composer:latest-bin /composer /usr/bin/composer

# Specific release
COPY --from=composer/composer:2-bin /composer /usr/bin/composer

詳細な使用方法については、イメージの説明を参照してください。

注記: Docker固有の問題は、composer/dockerリポジトリで報告してください。

注記: 上記のイメージ名として、composer/composerの代わりにcomposerを使用することもできます。これは短く、Docker公式イメージですが、直接私たちによって公開されているわけではないため、通常は数日遅れて新しいリリースを受け取ります。**重要:** 短縮エイリアスのイメージにはバイナリのみの等価物がありません。そのため、COPY --fromアプローチにはcomposer/composerを使用する方が適しています。

Composerの使い方#

Composerをインストールしたので、使用準備ができました!次の章で簡単なデモを行います。

基本的な使用方法

タイプミスを見つけましたか?このドキュメントに問題がありますか? フォークして編集してください!