composerでのPEARライブラリインストール例

PHPではこれからFrameworkがcomposerに対応したり様々なライブラリがPEARからPackagistに移行したりしてるので様子をみてるのですが結局設定ファイルを理解して自分で書けないと今までの延長上の使い方をしようとするとなかなか思う通りに使えないのでちょっと試してみました。

今回管理するのは
PHPunit 3.4系
Mail 1.2系
Net_SMTP(Optical)

設定例: composer.json

{
    "repositories": [
        {  
            "type": "pear",
            "url": "http://pear.php.net"
        },
        {  
            "type": "pear",
            "url": "http://pear.phpunit.de"
        }  
    ],
    "require": {
        "pear-phpunit/PHPUnit": "3.4.*",
        "pear-pear/Mail": "1.2.*",
        "pear-pear/Net_SMTP": "1.4.1"
    }
}

composerでPHPUnitを管理するメリット

Zend Framework 1では3.4系で使うことになっています。でも他のプロジェクトでは今後バージョンを上げて使いたいなどPEARで管理してると複数のバージョンを共存できないのでプロジェクト毎にcomposerで管理すれば適切なPHPUnitがそれぞれで使えます。

PEARでの依存とOpticalライブラリ

面倒だったのは一部の機能で依存しているライブラリは自動でインストールしてくれないので自分で依存関係を調べることになった事です。
有名なMailライブラリはPEARでも昔から自分でNet_SMTPも指定してインストールしてたのでそこは変わりません。ですが、"Net_SMTPのバージョンを固定にするか"を考えたら"そういえば対応してるバージョンいくつだっけ"と今までそこまで意識してなかったのでPEARのオフィシャルで調べることになりました。
でも一度書いてしまえば再利用も簡単でgitにコミットする都合上誰か一人ががんばれば良い。