【正しく説明できる?】PHPのcomposerってなんだっけ?という話。

PHP プログラミング

composerをレンタルサーバーで動かそうと思ったらいろいろと苦労しました。

調べているうちにcomposerとは何なのか理解を深める機会になったので、調べた事をまとめます。

composerとは何か?

PHPでの開発に欠かせないcomposer。

プロジェクトで必要なパッケージをうまいことダウンロードしてくれるツールです。

パッケージのアップデートをまとめてやってくれたり、開発者の間でパッケージのバージョンが統一されるように管理してくれます。

composer公式サイト

このcomposerについて、改めてどんものなのか確認しておきましょう。

composerをWikipediaで調べると以下のように書かれています。

Composerは、PHPプログラミング言語向けのソフトウェアおよび必要なライブラリの依存関係を管理する標準形式を提供するアプリケーションレベルのパッケージ管理システムである。

https://ja.wikipedia.org/wiki/Composer

「アプリケーションレベルのパッケージ管理システム」という説明です。

この「アプリケーションレベルの」という部分が重要です。

少なくとも普通のパッケージ管理システムではないという事です。

composerの公式サイトでは以下のような説明になっています。

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

Composerは、PHPの依存関係管理のためのツールです。プロジェクトが依存するライブラリを宣言し、それらを管理(インストール/更新)します。

https://getcomposer.org/doc/00-intro.md

公式サイトでは「パッケージ管理システム」という言葉は使わずに、「依存関係管理のためのツール」としています。

composerはパッケージ管理システムではない

composerの公式サイトでは「パッケージ管理」という言葉を使わず、「依存関係管理」という言葉を使っています。

これは「Yum」や「Apt」といった他のパッケージ管理システムと明確に区別するためです。

YumやAptはシステムのグローバルにパッケージをインストールされます。

これに対してcomposerは、プロジェクトのディレクトリ内に必要なパッケージをインストールします。

ただし、composerでもオプションとしてグローバルへのインストール機能は備わっています。

composerは依存関係管理ツール

あるプロジェクトは、他のPHPのパッケージに依存しています。

そのパッケージも他のパッケージに依存しています。

composerはこれらのパッケージの依存関係を解決します。

composer.jsonというファイルに必要なパッケージとバージョンを宣言しておく事で、composerは関連するパッケージを自動的にダウンロードします。

これが、composerを「依存関係管理ツール」と呼ぶ理由です。

composerのインストール方法

composerをインストールするには2つの方法があります

ローカルにインストールするか、グローバルにインストールするかです。

どちらもほとんど手順は同じです。

ローカルにインストール

composerのダウンロードページの指示に従い、以下の4行のコマンドを実行します。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'c5b9b6d368201a9db6f74e2611495f369991b72d9c8cbd3ffbc63edff210eb73d46ffbfce88669ad33695ef77dc76976') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

4行の内容は以下になります。

  1. インストーラーをダウンロードし、composer-setup.phpという名前で保存する。
  2. ダウンロードしたファイルのハッシュ値をチェックする
  3. インストーラーを実行する
  4. インストーラーを削除する

インストーラーを実行するとcomposer.pharというファイルが作られるので、これを使います。

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

ローカルにインストールしたcomposer.pharをコマンドのパスに配置するだけです。

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

これでcomposerが使えるようになりました。

使い方は以下の公式ドキュメントで確認できます。

Basic usage – Composer

pharって何?

composer.pharの「phar」とはなんでしょうか。

読み方は「ファー」と読みます。(「ぴゃー」ではありません)

PHPマニュアルにpharの説明があります。

PHP: はじめに – Manual

PHP Archive」の略で「phar」のようです。

簡単に言うと、複数のPHPプログラムを一つのファイルにまとめたフォーマットです。

この仕組みを使う事で、PHPで作られたプログラムの配布を簡単にできます。

composerも沢山のPHPファイルで構成されています。

pharの仕組みを使うことでcomposer.pharという一つの実行ファイルを扱えば済むように出来ています。

以上、composerの説明でした。

これからはcomposerを「パッケージ管理ツール」と言わずに「依存関係管理ツール」と呼んでいく事にしましょう。

コメント/ピンバック

タイトルとURLをコピーしました