クラスのオートローディング(サンプル2)
概要
クラスを外部ファイルに定義している場合はrequireまたはincludeで処理してから使用する必要があるが、__autoloadを使用することで簡略化する
サンプル2
定義
$WORK_DIR/
|__ main.php
| |__ classes/
| |__ Test1.class.php
| |__ Test2.class.php
対象ファイル
main.php
<?php
// autoload用の処理を定義
function my_autoloader($class) {
require_once('classes/' . $class . '.class.php');
}
// __autoload() の実装として登録する
spl_autoload_register('my_autoloader');
// クラスのインスタンスを生成
$a = new Test1();
$a->method1();
// クラスの静的メソッドを実行
Test2::method1();
classes/Test1.class.php
<?php
// テスト用クラス
<?php
// テスト用クラス
class Test1{
// コンストラクタ
function __construct(){
echo __CLASS__ . "::" . "__construct" . "\n";
}
// デストラクタ
function __destruct(){
echo __CLASS__ . "::" . "__destruct" . "\n";
}
// 動的メソッド
public static function method1(){
echo __CLASS__ . "::" . "method1" . "\n";
}
}
classes/Test2.class.php
<?php
// テスト用クラス
class Test2{
// コンストラクタ
function __construct(){
echo __CLASS__ . "::" . "__construct" . "\n";
}
// デストラクタ
function __destruct(){
echo __CLASS__ . "::" . "__destruct" . "\n";
}
// 静的メソッド
public static function method1(){
echo __CLASS__ . "::" . "method1" . "\n";
}
}
結果
最終更新:2012年07月07日 11:45