IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Faire une classe générique


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 141
    Par défaut Faire 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    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

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Pour savoir où tu dois placer cette classe, il faut se poser la question de sa 'généricité' :
    - est-ce que c'est une classe spécifique à ton application ? Si oui, le meilleur emplacement est bien le répertoire models ;
    - est-ce que c'est une véritable composant, pouvant être utilisé dans plusieurs applications (à l'instar des classes du ZF) ? Dans ce cas, le meilleur emplacement serait probablement dans library.

    Quelle que soit la solution retenue, les règles de nommage sont bien expliquées dans la doc : http://framework.zend.com/manual/fr/...nventions.html

    Une classe nommée 'Default_Model_Guestbook' soit donc être définie dans le fichier Default/Model/Guestbook.php (que ce soit dans models/ ou dans library/).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 132
    Par défaut
    À noter que si ton modèle fait parti du module 'default' il n'est pas nécessaire de le préfixer de 'Default'

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/08/2011, 16h06
  2. Utilisation d'une classe générique
    Par bandit_debutant dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2006, 16h54
  3. Réponses: 3
    Dernier message: 08/09/2006, 18h00
  4. Comment faire une classe avec deux form?
    Par Mickey.jet dans le forum Delphi
    Réponses: 10
    Dernier message: 04/07/2006, 18h23
  5. Réponses: 4
    Dernier message: 15/04/2005, 12h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo