mixed DB_DataObject::factory (
string $table
)
これは、クラスの自動ロードとインスタンス化を行うお勧めの方法です。 クラスは表のためのクラスネーミング設定 (class_location および class_prefix) に基づいてロードされます。
string $table
-
ロードするテーブルを指定します
([バージョン1.7.2から]
ブランクかつデータオブジェクトのインスタンスがコールされた場合、
そのオブジェクトの新しいインスタンスが生成されます) 。
object mixed
-
DB_DataObject_Error またはオブジェクト
エラーコード | エラーメッセージ | 意味 | 解決策 |
---|---|---|---|
DB_DATAOBJECT_ERROR_NOCLASS | "$class を自動ロードできません" |
このメソッドを静的あるいは動的にコールする事ができます。
主キーに基づいたデータの簡単なフェッチ
<?php
// オプションを設定します
$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();
}
}
?>