spl_autoload_register 使おうぜ
notoです。
PHPでクラス数が多くなると必然とrequireが多くなっていきます。継承関係にあったりすると直すのがとてもめんどくさいですよね。 PHP5.1.2から、spl_autoload_registerという関数を利用できるようになりました。
そこで今回は、spl_autoload_registerを利用してクラスローダーを作成していきます。
動作環境
- PHP 5.3.8
- CentOS 5.6
クラスローダーを実装する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
|
ClassLoaderクラスのloaderメソッドをコールバックとして登録します。 そうすることで、未定義のオブジェクトのインスタンスが存在しない場合、loaderメソッドがコールバックされます。
registerDirには、読み込みたいクラスが存在するディレクトリを登録します。
index.phpを作成し、registerDirにディレクトリを登録してみます。
1 2 3 4 5 |
|
requireをファイルそれぞれに記載するのはめんどくさいし、クラスを追加したらそのままnewできないのはイライラします。 クラスローダーは簡単に実装できるので、是非使ってみてください。