Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Pour débuter sur ZF 1.8 et après avoir fait le 'quickstart' du site http://framework.zend.com, je cherche un moyen d'éviter de réécrire du code en créant une classe générique, aussi bien pour les classes Mapper du répertoire models et les classes contenant les get et set des attributs d'une table.
Ma question est :
- Est ce que cette classe est bien à mettre dans monProjet/application/models/ ?
- Comment je devrais nommer cette classe ? il y a, me semble t il, des règles de nommage à respecter
Concrètement pour vous donner une meilleure vue de ce que je veux faire, voici un exemple.
class Default_Model_Guestbook { protected $_comment; protected $_created; protected $_email; protected $_id; protected $_mapper; [...] public function find($id) { $this->getMapper()->find($id, $this); return $this; } [...] }
Cette méthode 'find', vu dans le 'quickstart' est dans le fichier application/models/Guestbook.php où l'on retrouve des get et des set sur des attributs de la table Guestbook. En supposant qu'on ait d'autre table, ce serait redondant de réécrire le meme code.
Merci
Hors ligne
Personnellement je créerai une classe My_Db_Model_Abstract que je placerai dans /library/My/Db/Model/Abstract.php
Les classes mises dans /Models/ en hériterai.
En fais je bosse actuellement la dessus (dans le cadre de la découverte du Framework ^^ ne pas prendre ce que je dis pour argent content : je débute aussi avec cet outil)
Je suis assez intéressé par ton code, pour comparer
je ne met pas tout parce que ce n'est ni fini ni testé, mais voici l'interface vers quoi je tends :
<? abstract class My_Db_Model_Abstract { abstract protected $_tableName; //Nom de la table dans la bdd abstract protected $_tableClass; //Nom de la classe à utiliser pour la table abstract protected $_tableFile; //Nom du fichier contenant la classe abstract protected $_primary; //clef primaire protected $_tableInstance = null; //Instance en cours protected $_error; //Eventuelle erreur lors de la dernière commande public function getError(){} protected function _setError($errorMsg=null){} protected function _getTable() {} public function delete($keyvalue,$key = null){} public function find(array $key){} public function findByKey($keyvalue,$key,$orderby = null){} public function insert(array $data){} public function update(array $data,$keyvalue,$key = null){} }
Hors ligne