C'est la façon recommandée pour charger automatiquement une classe, et l'instancier.
La classe est chargée, en se basant sur les options de configuration
(class_location et class_prefix) pour le nommage de la classe.
Paramètres
string $table - la table que vous voulez charger.
([Depuis la version 1.7.2] si ce paramètre est vide, et appelé sur une instance
d'un objet de données, la méthode créera une nouvelle instance de cet objet.
// Configuration de nos options
$opts = &PEAR::getStaticProperty('DB_DataObject','options');
$opts = array(
'class_location' => '/home/me/Projects/myapplication/DataObjects',
'class_prefix' => 'DataObjects_'
);
// Chargement du fichier : /home/me/Projects/myapplication/DataObjects/Person.php
// et vérifie si la classe DataObjects_Person existe, et retourne une instance de celle-ci.
$person = DB_DataObject::factory('person');
if ($person->get(12)) {
print_r($person);
} else {
echo "NO person 12 exists";
}
// Elle peut également être appelée dynamiquement
class DataObjects_MyTable {
function anExample() {
$person = $this->factory('person');
// supporté en version 1.7.2
$another_mytable = $this->factory();
$another_person = $person->factory();
}
}