DB_DataObject::factory() -- 表名に基づいたクラスの自動ロードとインスタンス化
説明
これは、クラスの自動ロードとインスタンス化を行うお勧めの方法です。
クラスは表のためのクラスネーミング設定
(class_location および class_prefix) に基づいてロードされます。
注意
このメソッドを静的あるいは動的にコールする事ができます。
例
例 39-1主キーに基づいたデータの簡単なフェッチ // オプションを設定します
$opts = &PEAR::getStaticProperty('DB_DataObject','options');
$opts = array(
'class_location' => '/home/me/Projects/myapplication/DataObjects',
'class_prefix' => 'DataObjects_'
);
// ファイル /home/me/Projects/myapplication/DataObjects/Person.php
// を読み込み、クラス DataObjects_Person が存在するかどうかを調べ、
// そのクラスのインスタンスを返します
$person = DB_DataObject::factory('person');
if ($person->get(12)) {
print_r($person);
} else {
echo "12 番の人は存在しません";
}
// 動的に使用することも可能です
class DataObjects_MyTable {
function anExample() {
$person = $this->factory('person');
// バージョン 1.7.2 でサポートされます
$another_mytable = $this->factory();
$another_person = $person->factory();
}
} |
|