Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-05-2009 16:00:21

zen_fou
Nouveau membre
Lieu: Aulnay sous bois
Date d'inscription: 11-05-2009
Messages: 3

[ZF 1.8.0] Création d'une classe générique

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.

Code:

    
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 big_smile

Hors ligne

 

#2 19-05-2009 18:40:28

DavidV
Membre
Date d'inscription: 19-05-2009
Messages: 19

Re: [ZF 1.8.0] Création d'une classe générique

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 smile

je ne met pas tout parce que ce n'est ni fini ni testé, mais voici l'interface vers quoi je tends :

Code:

<?
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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages