クラスのオートローディング(サンプル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