最近の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 –version」と実行すると「30日以上経過しているのでupdateするように」のようなメッセージが表示された。
Composer本体のアップデートは非常に簡単で、メッセージにも表示されるが次のようにして一発でアップデートしてくれる。
# composer self-update
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だ。
迷宮の中で少し動けるようになった。