**以前のリビジョンの文書です**

__autoload

  • PHPでクラス実装をし始めたら、requireonceを多用することになった。 - requireonceは遅い。
    • index.phpにrequireonceがひたすら並ぶ。 * 途中でrequireonceするファイルが出てくる場合は尚更読みにくくなる。
    • どんだけ初期化に時間かかるんだ。
    • 最終的な出力に必要ないクラスまで読み込むとかいらなくない?
    • 後からクラス追加したらまたここに書くの?
    • プラグインを他の人が作ったら、rewuireonceする行まで書かなきゃいけないの? - 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( is_file($path) ){ require $path; return true; } } } }</code>

programming/php/autoload/start.1309993447.txt.gz · 最終更新: 2011/07/07 08:04 by yuki
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0