Les classes Objet et Peer
Publié par Aline Bunelle
Les classes Objet
Une classe Objet va permettre de représenter les enregistrements de chaque table.
Dans notre exemple, les classes NomTable et NomTable2 seront générées ainsi que leurs methodes d’accès selon leurs attributs :- getId(); getCreatedAt(); getTitre(); ...
- setId($id); setCreatedAt($created_at); setTitre($titre); ...
Pour créer une donnée en base, rien de plus simple, claire et rapide:
$instance = new NomTable();
$instance->setTitre('Titre 1');
$instance->setTexte('Texte du titre *1...');
$instance->save();
$instance2 = new NomTable2();
$instance2->setTexte('Peu importe');
$instance2->setNomTableId($instance->getId());
$instance2->save();
$instance2->delete();L’appel à la méthode save, exécute la requête INSERT INTO ou UPDATE en fonction de l’id (existant ou non en base). En cas d’insertion, une fois en base, l’id est généré et mis à jour dans notre objet. Nous pouvons directement le récupérer via la fonction d’accès getId pour faire le lien relationnel avec notre instance2.
Rappel : Les champs created_at et updated_at vont être automatiquement remplis.
Nous n’écrirons plus les requêtes SQL (INSERT INTO …; UPDATE … SET …; DELETE FROM…).
Les classes Peer
Une classe Peer permet de récupérer les données en base. Elle ne contient que des méthodes et attributs STATIC.
Ainsi, suivant notre exemple, les classes NomTablePeer et NomTable2Peer seront générées.
Nous n’écrirons plus les requètes (SELECT * FROM …;).Elles seront écrites via la classe Criteria. Nous décrirons le fonctionnement de ce système dans le prochain article. $c = new Criteria();
// Mises en places des critères
$tab_objet_NomTable = NomTablePeer::doSelect($c)
foreach ($tab_objet_NomTable as $nom_table)
echo $nom_table->getId().' '.$nom_table->getTitre().'<br />';Les classes Peer nous permettront de toujours récupérer les enregistrements en table sous leur forme objet (cf: classe Objet).
Lorsque nos critères nous permettent d’affirmer qu’un seul enregistrement sera retourné, utilisons la méthode doSelectOne qui nous retourne directement l’objet de l’unique enregistrement.
Egalement, la méthode retrieveByPk nous permettra de récupérer un objet directement en fonction de la clé primaire.
$objet1 = NomTablePeer::retrieveByPk(1);
$c = new Criteria();
$c->add(NomTablePeer::ID, 1);
$objet2 = NomTablePeer::doSelectOne($c);objet1 et objet2 vont récupérer le même enregistrement.

