差分
この文書の現在のバージョンと選択したバージョンの差分を表示します。
次のリビジョン | 前のリビジョン | ||
programming:php:autoload:start [2011/07/07 08:04] yuki 作成 |
programming:php:autoload:start [2021/05/22 17:58] yuki 削除 |
||
---|---|---|---|
ライン 9: | ライン 9: | ||
* 最終的な出力に必要ないクラスまで読み込むとかいらなくない? | * 最終的な出力に必要ないクラスまで読み込むとかいらなくない? | ||
* 後からクラス追加したらまたここに書くの? | * 後からクラス追加したらまたここに書くの? | ||
- | * プラグインを他の人が作ったら、rewuire_onceする行まで書かなきゃいけないの? | + | * プラグインを他の人が作ったら、require_onceする行まで書かなきゃいけないの? |
- requireで書く。 | - requireで書く。 | ||
* どうせ "PHP Fatal error: Cannot redeclare class" を頻発する。 | * どうせ "PHP Fatal error: Cannot redeclare class" を頻発する。 | ||
ライン 16: | ライン 16: | ||
- そうだね、autoload使おうね。 | - そうだね、autoload使おうね。 | ||
- | * __autoloadを実装すると | + | * autoloadを実装すると |
- | - $class = new Class;すると、クラス名を引数に__autoloadが呼ばれる。 | + | - $class = new Class;すると、クラス名を引数にautoloadが呼ばれる。 |
- じゃあ引数に合わせてクラス定義のあるファイルをrequireすればいいよね。 | - じゃあ引数に合わせてクラス定義のあるファイルをrequireすればいいよね。 | ||
- というコードを書く。 | - というコードを書く。 | ||
ライン 26: | ライン 26: | ||
* メモ。 | * メモ。 | ||
* <code>class CoreAutoload { | * <code>class CoreAutoload { | ||
- | |||
public static function autoload( $class ) { | public static function autoload( $class ) { | ||
//class already exists, return true; | //class already exists, return true; | ||
ライン 44: | ライン 43: | ||
} | } | ||
} | } | ||
- | + | } | |
- | }</code> | + | if(function_exists('__autoload')){ |
+ | spl_autoload_register('__autoload'); | ||
+ | } | ||
+ | spl_autoload_register( array('CoreAutoload', 'autoload') ); | ||
+ | </code> |