Рекурсивный акроним словосочетания «PHP: Hypertext Preprocessor»
Добро пожаловать на форум PHP программистов!
За последние 24 часа нас посетили 18014 программистов и 1568 роботов. Сейчас ищут 1802 программиста ...
DB_DataObject::factory()
Вернуться к: DB_DataObject
DB_DataObject::factory()
DB_DataObject::factory() – Autoload and instantate class based on table name.
Synopsis
mixed DB_DataObject::factory ( string $table )
This is the recommended way to autoload a class, and instantate it. The class is loaded based on the configuration settings (class_location and class_prefix) for table to class naming.
Parameter
-
string $table - the table you want to load ([From Version 1.7.2] if blank, and called on an an instance of a dataobject, it will create a new instance of that object)
Return value
object mixed - DB_DataObject_Error or the object
Throws
Error code | Error message | Meaning | Solution |
---|---|---|---|
DB_DATAOBJECT_ERROR_NOCLASS | "could not autoload $class" |
Note
This method can be called statically or dynamically.
Example
Simple fetch of data based on Primary Key
<?php
// set up our options
$opts = &PEAR::getStaticProperty('DB_DataObject','options');
$opts = array(
'class_location' => '/home/me/Projects/myapplication/DataObjects',
'class_prefix' => 'DataObjects_'
);
// loads the file: /home/me/Projects/myapplication/DataObjects/Person.php
// and checks that the class DataObjects_Person exists, and returns an
// instance of it.
$person = DB_DataObject::factory('person');
if ($person->get(12)) {
print_r($person);
} else {
echo "NO person 12 exists";
}
// it can also be used in a dynamically
class DataObjects_MyTable {
function anExample() {
$person = $this->factory('person');
// supported in version 1.7.2
$another_mytable = $this->factory();
$another_person = $person->factory();
}
}
?>
Вернуться к: DB_DataObject