DB_DataObject::factory()

DB_DataObject::factory() -- Autoload and instantate class based on table name.

Synopsis

mixed DB_DataObject::factory ([string $table])

Description

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

Return value

object mixed - DB_DataObject_Error or the object

Throws

Table 39-1. Possible PEAR_Error values

Error codeError messageMeaningSolution
DB_DATAOBJECT_ERROR_NOCLASS"could not autoload $class"  

Note

This method can be called statically or dynamically.

Example

Example 39-1. 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();
        
    }
}
?>