【php】PEAR?PEAR2?Pyrus?何が違うの?
問題
PEARに便利そうなものがあったので使おうと思って、インストールしたのですが、PEAR2とかPyrusというのが何なのか気になりました。
pearコマンド使ってて問題ないんでしょうか?
答え
特に問題はない。PEAR2仕様でないとだめなどの事情がなければ、大丈夫。
PEARとPEAR2、pearコマンドとpyrusの違いは以下のようになる。
まず、PEARリポジトリとPEARインストーラーは別のものと考えましょう。
PEAR2は次世代のPEARリポジトリで、Pyrusは次世代のPEARインストーラーです。
PEARリポジトリとPEAR2リポジトリはそれぞれにプログラム上の規約があります。
PEAR2パッケージには、以下の特徴があります。
- 対象はphp5.3以降のみ
- すべてのコードは名前空間PEAR2内に
- すべてのパッケージは package.xml v2.0 を使わなくてはいけない
- ファイルは PSR-0仕様のオートローダーで読み込まれる
- なので、include, require_once などは使わない
- インストールしたファイルシステムに依存しないこと
- PEARの例外ではなくてSPLの例外を使うこと など
新しいPEARインストーラーのPyrusは、既存のインストーラーと比べてさまざまな改善がされています。pear.php.net、pear2.php.netや、他の pear互換のchannelからパッケージをインストールできます。
pyrus.pharのファイルはPEAR2のコーディング規約に従っていて、PEAR2のリポジトリにあって、ベンダーライブラリとして利用することも可能です。
pearインストーラーを使うと、パッケージのインストールはこんな感じ pear install Net_URL2
pyrusを使うと、パッケージのインストールはこんな感じ php pyrus.phar install pear/Net_URL2
PEAR2仕様のパッケージは、別の場所に移動させたり、リポジトリにコミットしたりできます。特定のマシンに依存しません。自分のアプリケーションが必要とするライブラリを含むベンダー用ディレクトリを作ることができて、共有することができます。
他にもいろいろあるけど、簡単にはこんなところです。
参考
http://stackoverflow.com/questions/5409039/what-is-the-difference-between-pear-and-pear2
コメント