Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je suis utilisateur de Zend depuis quelques mois, et je vois quelques tutos parler de cette classe.
De ce que j'ai compris c'est un composant très important pour l'accès aux sgbd.
Mais en pratique j'ai du mal à comprendre l'utilité.
J'ai trouvé un exemple dans un magazine : phpsolution. Année 2008.
Le Zend_Db_Table_Row_Abstract servait à faire des getters et setters ....
Avec deux méthode de calcule d'âges, mais tous ça aurait pu être dans le Zend_Db_Table_Abstract !
Je vous fais une petite copie. Et j'invoque le droit à la citation pour cela !^^
class UnCandidat extends Zend_Db_Table_Row_Abstract { public function getNom() { return $this -> NOM ;} .... autres méthodes getxxx ici .... public function setNom( $nom ) { $this -> NOM = $nom ;} .... autres méthodes setxxx ici .... /** * Ajuster l'âge pour l'année actuelle. */ public function ajusterAge() { $annee = date( 'Y' ) ; # Année actuelle. $naissance = $this -> getNaissance() ; # Année de naissance. $this -> setAge( $annee - $naissance ) ; # Ajuster l'âge. }
Concrètement avoir deux classes (Table_Abstract et Table_Row_Abstract) apporte quoi ?
Dernière modification par maryooman (21-04-2010 15:49:46)
Hors ligne
perso j'utilise cette classe pour définir mes propre méthodes sur les enregistrements
je crée la classe Personne_Row dérivée de celle-ci et je l'associe à Personne_Table ainsi lorsque je pioche un objet dans ma table personne
j'obtiens un objet sur lequel je peux invoquer mes méthodes
A+JYT
Hors ligne
C’est un peu flou pour moi ...
J’aurais mis toutes les méthodes dans la même classe
C’est juste pour avoir une séparation logique ou bien il y a un réel traitement différend?
Hors ligne
je me suis dis que le meilleur moyen de comprendre est de pratiquer,
alors j'ai fait un classe et une table Country.
J'ai mis un getter, cela fonctionne par contre le setter ne fonctionne pas.
public function setName($name) { $this->country_name = $name; }
est ce suffisant pour un setter d'une base de données ?
je rejouerai aussi pour ceux qui s'y intéressent, je viens trouver un lien à propos de ce sujet
http://akrabat.com/category/js/
Hors ligne
<?php require_once dirname(__FILE__).'/Row.php'; /** * @package Fast_Module * @subpackage Adm_Module */ Class Adm_Model_User_Table extends Zend_Db_Table { /** * Classname for row * * @var string */ protected $_rowClass = 'Adm_Model_User_Row'; ...
<?php /** * @package Fast_Module * @subpackage Adm_Module */ class Adm_Model_User_Row extends Zend_Db_Row { public $_data = array( 'usr_id' => null, 'usr_ident' => null, 'usr_pwd' => null, 'usr_name' => null, 'usr_firstname' => null, 'usr_mail' => '@orange-ftgroup.com', 'usr_begin_dt' => null, 'usr_end_dt' => null); public function setName($name) { $this->usr_name = $name; } public function getDuration() { ... } public function setDuration($duration) { ... } ...
un objet sortit de Adm_Model_User_Table sera un objet de la classe Adm_Model_User_Row
je peux donc mettre des méthodes propre à cet objet
A+JYT
Hors ligne
là je comprends mieux.
j'ai déjà commencé à me mettre à écrire de cette maniere.
merci !
Hors ligne
Pages: 1