DB_DataObject::factory()

DB_DataObject::factory() – 表名に基づいたクラスの自動ロードとインスタンス化

Synopsis

mixed DB_DataObject::factory ( string $table )

Description

これは、クラスの自動ロードとインスタンス化を行うお勧めの方法です。 クラスは表のためのクラスネーミング設定 (class_location および class_prefix) に基づいてロードされます。

Parameter

  • string $table - ロードするテーブルを指定します ([バージョン1.7.2から] ブランクかつデータオブジェクトのインスタンスがコールされた場合、 そのオブジェクトの新しいインスタンスが生成されます) 。

Return value

object mixed - DB_DataObject_Error またはオブジェクト

Throws

Possible PEAR_Error values
エラーコード エラーメッセージ 意味 解決策
DB_DATAOBJECT_ERROR_NOCLASS "$class を自動ロードできません"    

Note

このメソッドを静的あるいは動的にコールする事ができます。

Example

主キーに基づいたデータの簡単なフェッチ

<?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();
        
    }
}
?>
基底クラスの生成とデータベーススキーマ (Previous) 単純な取得 (Select) リクエスト (Next)
Last updated: Sun, 21 Sep 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: powtac@gmx.de
You can use staticGet() for primary key querys without factory!