PEARと名前空間

PHP6から名前空間が導入されるということで、PEARの長ったらしい関数名クラス名がスッキリすることが期待される。PEAR使いには朗報だ。
しかし、but


ということなんですね。PHP5・6混在状況における「名前空間」って、PHP4・5混在環境でのimplementsとかprivate/protected/publicと同じってことか。。。使おうにも積極的に使えね〜。。。orz
ということでPHP5との互換性を考えると導入が難しいようだ。

でも、よく考えるとPEAR名前空間の切り分けは接頭辞やディレクトリ構造という形できちんと規則正しくできているので、機械的にnamespace対応させることは可能なきがする。
例えばこんな感じ

  1. PEARディレクトリを開く(pear/dbを例にする)
  2. *.phpファイルを見つけたら先頭にnamespace pear::db;import pear;を追加
  3. PEARぽい関数名/クラス名をすべてpear::*(フルネーム)に変更
  4. PEARディレクトリ内すべてに再帰的に繰り返す

もちろんこれをすると呼び出すときには必ずnamespaceを使わなければならなくなるので、エイリアスを設けてやるのもいいかもしれない。