DB_DataObject::factory()

DB_DataObject::factory() – Chargement automatique et instanciation d'une classe, basée sur le nom d'une table

Synopsis

mixed DB_DataObject::factory ( string $table )

Description

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.

Parameter

  • 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.

Return value

object mixed - DB_DataObject_Error ou l'objet.

Throws

Possible PEAR_Error values
Code erreur Message d'erreur Signification Solution
DB_DATAOBJECT_ERROR_NOCLASS "could not autoload $class"

Note

Cette méthode peut être appelée statiquement ou dynamiquement.

Example

Récupération simple de données basées sur la clé primaire

<?php
// 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();

   }
}
?>
Création des classes de base et du schéma de la base de données (Previous) Requête simple de sélection (Next)
Last updated: Sun, 29 Aug 2010 — 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!