**以前のリビジョンの文書です**
__autoload
- PHPでクラス実装をし始めたら、requireonceを多用することになった。 - requireonceは遅い。
- index.phpにrequireonceがひたすら並ぶ。 * 途中でrequireonceするファイルが出てくる場合は尚更読みにくくなる。
- どんだけ初期化に時間かかるんだ。
- 最終的な出力に必要ないクラスまで読み込むとかいらなくない?
- 後からクラス追加したらまたここに書くの?
- プラグインを他の人が作ったら、requireonceする行まで書かなきゃいけないの? - requireで書く。 * どうせ “PHP Fatal error: Cannot redeclare class” を頻発する。 * 毎回classexistの分岐を書くとか面倒です。
- $class = new Class;した時に、勝手にclassファイルをロードしてくれたら楽なのにね。
- そうだね、autoload使おうね。
- autoloadを実装すると - $class = new Class;すると、クラス名を引数にautoloadが呼ばれる。
- じゃあ引数に合わせてクラス定義のあるファイルをrequireすればいいよね。
- というコードを書く。
- splautoloadregister使って自分用に名前付けしたほうがいいよね。
- まだあんまり実感わかないけど。
- メモ。
- <code>class CoreAutoload { public static function autoload( $class ) { class already exists, return true; if( classexists( $class, false ) || interfaceexists( $class, false ) ){ return true; } extension setting $file = $class.'.php'; $dirs = array('core/','plugins/'); search class file in directries foreach( $dirs as $value ){ $path = $value . $file; if( isfile($path) ){ require $path; return true; } } } } if(functionexists('autoload')){ splautoloadregister('autoload'); } splautoloadregister( array('CoreAutoload', 'autoload') ); </code>