autoload関数

PHPのバージョンが上がってからオブジェクト指向っぽい関数がいろいろ増えいる。
結構便利そうなのがクラスの __autoload 関数。

クラスを呼び出した時に、ファイルをインクルードしてなくても自動で読み込んでくれる。



ZendFramework でやるならば

index.php

                                                                                                                          • -
  1. <?php
  2. require_once 'define.php';
  3. function __autoload($class)
  4. {
  5.   $file = str_replace("_", "/", $class) . ".php";
  6.   require_once ($file);
  7. }
  8. Zend_Controller_Front::run('./application/controllers');
                                                                                                                          • -


みたいな感じにしておけば良いか。
当然、クラス名とファイルパスはPear命名規則にしっかり従っているのが前提。
クラス内に大量の require を書かなくて良くなるハズ。
メモリも節約できそう。


※上のソースは今思いつきで書いただけなので、コピペして動くか保証はしない。