公開日

Composerで始める PHPのライブラリ管理

PHPもComposerの登場によりライブラリのインストール、依存性管理が格段に楽になりました。既にPHPのライブラリ管理のスタンダードになっていますが、改めてComposerの導入手順について紹介してみたいと思います。

Composerのインストール

PHPのバージョンは5.3以降が必要です。PHP5.2以前はさっさと捨てるべし!

$ curl -s https://getcomposer.org/installer | php

さてこれでcomposer.pharが手に入りました。composerコマンドを使えるようにするためにパスの通った場所にcomposer.pharを移動しましょう。

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

composerコマンド準備完了です。

$ composer
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version b482ebe0ca18321d9322bd913af73c1c55adebf1 2013-09-23 09:55:49

依存関係の記述

composerはプロジェクトルートの composer.json ファイルにライブラリを記述することで依存関係の管理を行います。(composer.jsonはnpmにおけるpackage.jsonみたいなものです)早速ファイルを作ってライブラリを記述してみましょう。

$ touch composer.json

composer.jsonファイルに下記のように記述します。ここではPHPUnitをインストールしてみます。

{
    "require": {
        "phpunit/phpunit": "3.7.*"
    }
}

ライブラリのインストール

composer.jsonファイルを記述し終えたら、composerコマンドでライブラリのインストールを行います。

$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing symfony/yaml (v2.3.6)
    Loading from cache

  - ..............

  - Installing phpunit/phpunit (3.7.28)
    Loading from cache

phpunit/phpunit suggests installing phpunit/php-invoker (>=1.1.0,<1.2.0)
Writing lock file
Generating autoload files

うまいこといきました。ライブラリはvendorディレクトリ下に格納されます。この時同時にバージョン情報が書かれたcomposer.lockファイルも生成します。

ライブラリのアップデート

ライブラリのアップデートに関しては下記のコマンドでOK.

$ composer update

まとめ

モダンなPHPパッケージ管理であればComposer一択でしょう。PEARとの使い分けに関してはPHP Right Wayにはこのように書いてあります。

  • Composer を使うのは、ひとつのプロジェクトにおける依存関係を管理するとき。
  • PEAR を使うのは、システム全体の PHP 環境の依存関係を管理するとき。

大抵の場合、後者のようにシステム全体で依存性管理をしなきゃならん理由はないと思うのでComposerで依存管理を行いましょう!