Composer で PHPUnit のインストール
ちまたで人気の Composer を試してみた。
だが、pear 経由では PHPUnit がインストールに失敗する。もしかしたら Composer の不具合かもしれないが、どうやら PHPUnit のpear の管理情報 (packages.json) に問題(?)があるらしい。
https://gist.github.com/2433139 を参考にして、インストールしてみた。
composer.json: リポジトリをローカル指定し、url の先に PHPUnit 用の packages.json を配置する。
{ "repositories" : [ { "type" : "composer", "url" : "file:///path/to/repositories/phpunit" } ], "require" : { "pear-phpunit/PHPUnit" : "3.6.10" } }
packages.json を修正:
wget http://pear.phpunit.de/packages.json sed -i 's/"pear-symfony\\\/YAML"/"symfony\/yaml"/g' packages.json sed -i 's/"http:\\\/\\\/pear.phpunit.de\\\/get\\\/pear-phpunit\\\//"http:\\\/\\\/pear.phpunit.de\\\/get\\\//g' packages.json
#!/usr/bin/env php <?php require_once __DIR__.'/vendor/autoload.php'; $paths = get_include_path(); foreach (glob(__DIR__.'/vendor/pear-phpunit/*') as $path) { $paths .= PATH_SEPARATOR . $path; } set_include_path($paths); require_once 'PHPUnit/Autoload.php'; PHPUnit_TextUI_Command::main();
composer 実行:
php composer.phar install
phpunit 実行:
php phpunit
問題点としては、最新の状態に保つためにはローカルの packages.json を自分で更新する必要があること。
また、Composer の仕様変更がある可能性はある。