Advent Calendar 9日目 たとえば、PEAR を信じない

PEAR 使ってますか?

僕はあまり使ってません。とりわけシステムにインストールされる PEAR ライブラリはほとんど使っていません。

便利なライブラリは確かにありますが、どうも依存が気になっちゃうのです。

ライブラリディレクト

そこで良くやる手段が、実行スクリプトと同階層に lib ディレクトリをつくって、その配下に PEAR ライブラリを押し込めてしまうことです。

<?php
ini_set('include_path', __DIR__ . '/lib' . PATH_SEPARATOR . ini_get('include_path'));


スクリプトの先頭でこのようにしておけば、 lib 以下のファイルが先に読み込まれるので、システムにインストールされた PEAR ライブラリとは異なるバージョンのライブラリを利用出来ます。

PEAR のローカルコピー

ただ、いちいち PEAR 用に作られたパッケージをダウンロードして、展開して、適宜ディレクトリに設置するのは面倒なので、
PEAR のローカルコピー という仕組みを利用しちゃいましょう。

$ pear config-create /tmp .pearrc
$ pear -c /tmp/.pearrc install -o PEAR

参照 : http://pear.php.net/manual/ja/installation.shared.php (pear.php.net)


こうすると、 /tmp/pear 以下に、 PEAR の基本パッケージがインストールされます。


例えば、PHPUnit をインストールしたい場合は、

pear -c /tmp/.pearrc config-set auto_discover 1
pear -c /tmp/.pearrc install pear.phpunit.de/PHPUnit

参照: PHPUnit – The PHP Testing Framework (http://www.phpunit.de/manual/3.6/ja/installation.html) を参照


/tmp/pear/php 以下に PEAR 自身を含め、インストールされたライブラリが格納されていますので、これらを lib ディレクトリにいれてやればOK


PEAR Version: 1.9.4 にて動く事を確認しています。古いバージョンだとちょっと違うようなので注意。