差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
programming:php:autoload:start [2011/07/07 08:06]
yuki
— (現在)
ライン 1: ライン 1:
-====== __autoload ====== 
  
-  * PHPでクラス実装をし始めたら、require_onceを多用することになった。 
-    - require_onceは遅い。 
-      * http://​blog.apecell.com/​2007/​10/​22/​id/​19 
-      * index.phpにrequire_onceがひたすら並ぶ。 
-        * 途中でrequire_onceするファイルが出てくる場合は尚更読みにくくなる。 
-      * どんだけ初期化に時間かかるんだ。 
-      * 最終的な出力に必要ないクラスまで読み込むとかいらなくない? 
-      * 後からクラス追加したらまたここに書くの? 
-      * プラグインを他の人が作ったら、require_onceする行まで書かなきゃいけないの? 
-    - requireで書く。 
-      * どうせ "PHP Fatal error: ​ Cannot redeclare class" を頻発する。 
-      * 毎回class_existの分岐を書くとか面倒です。 
-    - $class = new Class;​した時に、勝手にclassファイルをロードしてくれたら楽なのにね。 
-    - そうだね、autoload使おうね。 
- 
-  * autoloadを実装すると 
-    - $class = new Class;​すると、クラス名を引数に__autoloadが呼ばれる。 
-    - じゃあ引数に合わせてクラス定義のあるファイルをrequireすればいいよね。 
-    - というコードを書く。 
-  * spl_autoload_register使って自分用に名前付けしたほうがいいよね。 
-    * まだあんまり実感わかないけど。 
- 
- 
-  * メモ。 
-    * <​code>​class CoreAutoload { 
-    public static function autoload( $class ) { 
-        //class already exists, return true; 
-        if( class_exists( $class, false ) || interface_exists( $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; 
-            } 
-        } 
-    } 
-} 
-if(function_exists('​__autoload'​)){ 
-    spl_autoload_register('​__autoload'​);​ 
-} 
-spl_autoload_register( array('​CoreAutoload',​ '​autoload'​) ); 
-</​code>​ 
programming/php/autoload/start.1309993597.txt.gz · 最終更新: 2011/07/07 08:06 by yuki
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0