明滅するプログラマの思索

WEBエンジニアとして勤務している一介の男が、日々気づいたことをまとめるブログです

composer を使おう

composer とは、PHPのライブラリを依存パッケージごと管理するツールです。 これまでにも PHP のライブラリツールとしては PEAR がありましたが、現在では composer でインストール可能なものはこちらで管理する流れが出来上がっています。
今回は今更ですが composer を導入するための手順についてまとめます。

導入環境

ソフトウェア バージョン
CentOS 7.3
PHP 5.6

composer のインストール

composer の本体をインストールする方法は非常に簡単で、以下のコマンドを実行するだけです。

curl -sS https://getcomposer.org/installer | php

composer.phar という実行ファイルができるので、path を通して使いやすくするため、以下のような感じで設置します。

mv composer.phar /usr/loca/bin/composer

実際にコマンドを実行して、以下のように表示されればインストールは完了となります。

$ composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.5.2 2017-09-11 16:59:25

# この下に Usage が表示される

パッケージを管理対象に追加する

パッケージのインストールには、まずパッケージを管理対象に追加しなければなりません。 管理対象に追加するにはcomposer requireコマンドを実行します。
今回は試しに、ページャを簡単に実装できるパッケージ paginator をインストールしてみることにします。

github.com

上記サイトにも記載がありますが、

composer require "jasongrimes/paginator:~1.0"

と実行すればpaginatorを管理対象に追加できます。 このとき、~1.0となっている部分は、パッケージのどのバージョンをインストールするかを指定する部分で、~1.0 であればバージョン1.0以上(2.0未満)を表します。
バージョンの指定方法については、

[初心者向け] composerのバージョン指定方法 | QUARTETCOM TECH BLOG

がわかりやすいです。
管理対象に追加されたパッケージは、composer.jsonファイルにも追記されています。 バージョンを変更したり、管理対象から削除したりしたい場合はcomposer.jsonを編集して更新することになります。

パッケージをインストールする

管理対象に追加されたパッケージをインストールするには、

composer install

を実行します。

しばらく待つとパッケージがインストールされます。展開場所は実行したディレクトリ直下のvendorディレクトリとなります。

パッケージを最新にする

パッケージをアップデートする場合は、

composer update

を実行すればOKです。
composer.jsonを編集していれば、その内容に従ってパッケージを更新してくれます。

パッケージを require する

インストールしたパッケージは、vendor/autoload.php を require すればすべて利用可能となります。
spl_autoload_register を利用しているため、不必要なパッケージはインクルードされません。

require_once('vendor/autoload.php');

まとめ

  • composer を使うとプロジェクトごとに必要なパッケージを依存関係も解決して管理できる
  • 基本的な管理コマンドはどれも簡単
  • spl_autoload_register でインクルードするため、プロセス内で使用されないパッケージは読み込まれない