PHPのautoloadは結局どう書くのが一番気分がいいのか
PHPにはクラスを自動的に探してくる
オートローディングという機能があります。
オートロードするための関数を登録する方法として
__autoload()とspl_autoload_register()の二つが存在し、
__autoload()は複数の関数を登録できないので非推奨、
spl_autoload_register()を使いましょう、ということになっています。
サードパーティのライブラリなんかを使用する場合、
__autoload()だと困ったことになるわけですね。
で、オートロードの関数を作成するわけですが、
クラスの存在するかもしれないファイルのパスを指定する方法は
だいたい三通りあります。
1.クラスをおいてあるディレクトリを逐一指定してパスを作成する
2.クラスの命名規則からパスを作成する
3.名前空間の命名規則からパスを作成する
1は簡単ですね、/path/to/hogeとかディレクトリを書いておいて、
そこから/path/to/hoge/AClass.phpみたいなパスを作成する。
2はPath_To_Hoge_AClassみたいなクラス名をつけるようにして
そのクラス名を分解して/path/to/hoge/AClass.phpにする。
3はPHP5.3以降の新機能名前空間を使用する方法。
オートロードの関数には補完された名前空間が渡されるので
path\to\hoge\AClass.phpみたいな名前空間からパスを作成する、と。
PHP5.3以前は1か2の方法が使用されていて、pearでは2の方法が推奨というか、
命名規約に書かれています。
http://pear.php.net/manual/ja/standards.naming.php
ただ、私は2の方式の長ったらしいクラス名が嫌いだったので、
めんどくさいと思いつつ1の方法を使用していました。
PHP5.3以降は名前空間が使えるので3の方法にすればいいんじゃね?
という話になるわけですが、補完なしにuse Foo\Barとか打つのはマゾいので
もろもろ検討中です。