サーバー

ubuntu 12.04 PHPUnitをComposerでインストール

最近のPHP界隈では、パッケージのインストールに「Composer」が利用されるようになり、複雑な依存関係を解決できる優れものの登場で作業が楽になった。

まだ使い始めたばかりなので、ComposerとPHPUnitを利用開始するまでのインストールについて備忘録を残しておく。

Composerを活用するための設定は今後の実践で学習するとし、その前にPHPを利用する上で必要となるフレームワークやテスト環境、その他パッケージのインストール(ダウンロード)について。なお、自分のパーソナル環境でのお話です。

現在PHPUnitやLaravel4を頻繁に利用しているが、有名どころのPHPライブラリはComposerのPackagistに登録されており、ここから容易にインストール可能な訳だ。PackagistはGitHubやPEARのようなリポジトリ(アーカイブ)で、Composerから利用するようになっている。GitHub側でもComposerに対応していれば、gitコマンドでなくcomposerコマンドでインストールできるようだ。

さてcomposerの導入だが、コマンドは「composer.phar」のPHPアーカイブファイルで、取り込むとパーミッションが755の実行可能ファイルになっている。

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

または

# curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin

自分はローカル内でどのプロジェクトからも利用できるように、「/usr/local/bin」に「composer」とリネームして利用することにした。

Composerのアップデート

導入してからしばらくほったらかしにしていたのだが、「composer –version」と実行すると「30日以上経過しているのでupdateするように」のようなメッセージが表示された。

Composer本体のアップデートは非常に簡単で、メッセージにも表示されるが次のようにして一発でアップデートしてくれる。

# composer self-update

PHPUnitのインストール

Composerを利用する前のインストールは、PEARでチャネルを指定してどうたらこうたら、と訳も分からず操作していた。

Composerでインストールする場合、依存関係を「composer.json」ファイルに記述して「install」パラメータを指定して取り込む。そうするとカレントディレクトリに「vendor」ディレクトリが作成され、「vendor/bin/phpunit」が目的のコマンドとして用意される。

先ずは「composer.json」だが、phpunitもプロジェクト共通で使えるようにしたいので「/usr/local/bin」に用意することにする。

「/usr/local/bin/composer-packages」ディレクトリを作成し、そこに次の「composer.json」ファイルを作成する。

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

カレントが「/usr/local/bin/composer-packages」の状態でインストール実行。

# composer install

インストール直後は次のようなディレクトリ構成になった。

composer-packages/
 +- composer.json
 +- composer.lock
 +- vendor/
     +- autoload.php
     +- bin/
     |   +- phpunit
     +- composer/
     +- phpunit/
     +- symfony/

後はphpunitがどこらでも利用できるようにリンクを作成する。

# cd /usr/local/bin
# ln -s composer-packages/vendor/bin/phpunit phpunit

phpunitを更新する場合は「composer-packages」ディレクトリで「composer update」とすればOKだ。

迷宮の中で少し動けるようになった。