09 décembre 2005

PEAR DB_DataObject, exemple

PEAR DB_DataObject est un module permettant de créer des objets à partir d'une ou de plusieurs bases de données et ce quelque soit la nature de la base : MySQL, Oracle, ...
Nous obtenons après avoir lancé un script des classes correspondant aux différentes tables de notre base contenant des objets correspondants aux champs de cette table.
Le nom de ce script est : createTables.php
Je ne vais pas détailler l'utilisation de ce script, c'est déjà très bien expliqué sur le site :
http://pear.php.net/manual/fr/package.database.db-dataobject.intro-autobuilding.php

Exemple d'une classe générée par ce script:

class DataObjects_Livre extends DB_DataObject
{
    ###START_AUTOCODE
    /* the code below is auto generated do not remove the above tag */

    public $__table = 'livre';                       // table name
    public $_database = 'databaseTest';     // database name (used with database_{*} config)
    public $ISBN;                                      // string(10) not_null primary_key unique_key
    public $EAN13;                                    // string(13)  not_null multiple_key
    public $DISPONIBILITE;                        // string(1)  not_null
    public $PRIX;                                      // int(11) 
    //etc...
 
    /* Static get */

function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('DataObjects_Livre',$k,$v); }
    /* the code above is auto generated do not remove the tag below */
    ###END_AUTOCODE
}

Ce qui nous intéresse est la facilité d'utilisation de ce module dans nos développements. Comment créer une requête avec PEAR DB_DataObject, comment sélectionner des données précises par exemple?

Exemple de sélection de données :

public function recupererInfoClient($lobjCommandeClient)
  {
    //affiche le debug
    DB_DataObject::debugLevel(5);
    //instanciation d'un objet de type DataObjects (~table Commande)
    $lobjDBCommande = new DataObjects_Commande;
    //récupération de la valeur du champ Numéro de Commande
    $lobjDBCommande->NumCommande = $lobjCommandeClient->getNumCommande();
   //exécution de la requête
    $lintNbRows = $lobjDBCommande->find();
    if(($lintNbRows != false) && ($lintNbRows > 0))
    {
          //parcours des résultats
         while ($lobjDBCommande->fetch())
         {
       //creation d'un nouvel objet CustomerInfo contenant les infos sur le client récupérées en base
$lobjInfoClient = new InfoClient($lobjDBCommande->NumCommande,$lobjDBCommande->Nom,$lobjDBCommande->Email);
        }
    }
    return $lobjInfoClient;
  }

Le but de cet article était de vous familiariser avec les méthodes de PEAR DB_DataObject. D'autres articles viendront compléter celui-ci.

Source : http://pear.php.net/manual/fr/package.database.db-dataobject.intro-purpose.php

Posté par fatihaelh à 11:46 - PHP - Commentaires [0] - Permalien [#]

Commentaires

Poster un commentaire