Manuel Pear

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.

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.

Valeur retournée

object mixed - DB_DataObject_Error ou l'objet.

Valeurs renvoyées

Tableau 39-1. Valeurs PEAR_Error possibles

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.

Exemple

Exemple 39-1. Récupération simple de données basées sur la clé primaire

  1. <?php
  2. // Configuration de nos options
  3. $opts = &PEAR::getStaticProperty('DB_DataObject','options');  
  4. $opts = array( 
  5.    'class_location' => '/home/me/Projects/myapplication/DataObjects', 
  6.    'class_prefix'   => 'DataObjects_'  
  7. );  
  8.  
  9. // Chargement du fichier : /home/me/Projects/myapplication/DataObjects/Person.php
  10. // et vérifie si la classe DataObjects_Person existe, et retourne une instance de celle-ci.
  11.  
  12. $person = DB_DataObject::factory('person');  
  13.  
  14. if ($person->get(12)) {  
  15. print_r($person);  
  16. } else {  
  17. echo "NO person 12 exists";  
  18. }  
  19.  
  20. // Elle peut également être appelée dynamiquement
  21. class DataObjects_MyTable {  
  22.  
  23. function anExample() { 
  24.    $person = $this->factory('person'); 
  25.  
  26.    // supporté en version 1.7.2
  27.    $another_mytable = $this->factory(); 
  28.  
  29.    $another_person = $person->factory();  
  30.  
  31. }  
  32. ?> 

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto