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 :

Architecture MVC avec ou sans classes métier ?


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut Architecture MVC avec ou sans classes métier ?
    Bonjour,

    Je me pose une question depuis un bon moment et je n'ai pas vraiment trouvé de réponse à ma question. Je vous l'expose:

    Selon le modèle MVC les contrôleurs devraient juste s'occuper de la "connexion" entre les modèles et les vues. Et c'est les classes de la couche métier qui doivent "travailler", dans l'action d'un contrôleur il ne devrait y avoir que quelques lignes de code. (Arrêter moi là si ce n'est pas juste.)

    Cependant dans tous les tutoriels que j'ai lu sur le Zend Framework il n'y a pas vraiment de classes "métier" tout est toujours directement codé dans les actions des contrôleurs. Alors est-ce correct de tous coder directement dans les contrôleurs lorsqu'on on utilise le framework de Zend ou est-ce qu'il faut faire des classes métier?

    S'il faut faire des classes métier j'ai un peu de la peine à me m'imaginer ce que sa donnerait. Car dans les contrôleurs on utilise beaucoup le $this pour accéder aux valeurs passées en post ou en get, pour passer des valeurs à la vue, pour rediriger, etc... Si on fait des classes métier ce serais stupide de passer ce $this car sa reviendrais à créer une sous-couche inutile.

    Voilà j'espère que quelqu'un pourra m'éclaircir.

    Merci d'avance.
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  2. #2
    Invité
    Invité(e)
    Par défaut
    Hello,

    En effet, selon le pattern MVC, le contrôleur ne doit faire que des "liaisons" entre les modèles et les vues.

    Il est vrai qu'on retrouve souvent dans les exemples ici et là, du code métier dans les contrôleurs. Il y a trois raisons à cela :
    • La flémardise notoire du programmeur,
    • le manque d'experience du programmeur,
    • le Net est connu pour fournir une quantité remarquable de mauvais exemples !
    Utiliser des raccourçis, ça ne remet pas formélement en question le fonctionnement d'une application, simplement sa maintenance, sa marge d'évolution... Sa qualité.

    Le choix de la facilité a toujours son effet boomerang. Toujours .

    Bref...

    Le code métier - à proprement dit - n'a rien à faire dans un contrôleur d'action. Simple question de rigueur !

  3. #3
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    Ok, il me semblait bien.

    Mais alors où est-ce que je stocke les classes métier? Je fais un dossier dans library genre My et je crée les classe My_Nom-du-controller ?? Y a une structure à respecter?

    Utiliser des classes métier va considérablement faciliter l'implémentation des tests.
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Pourquoi un dossier dans library ?

    Je mettrais plutôt un dossier logic ou bll dans application, non ? Ensuite, au niveau du nommage des classes, je ne les lierais pas au nom du contrôleur... Une classe métier a un nom propre et peut être utilisée par différents contrôleurs.

  5. #5
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Par défaut
    Oui, j'ai pas bien réfléchis... je vais faire un dossier logic par module. Par contre pour le nom des classes je ne sais pas encore... Le nom des contôleurs sépare bien les différentes parties du module je trouve.
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  6. #6
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par Yoteco Voir le message
    Oui, j'ai pas bien réfléchis... je vais faire un dossier logic par module. Par contre pour le nom des classes je ne sais pas encore... Le nom des contôleurs sépare bien les différentes parties du module je trouve.
    Si c'est bien séparé avec les contrôleurs, c'est vrai que tu peux réemployer le nom du contrôleur

    Par exemple, si toute la partie de gestion des membres est dans le contrôleur MembresController, tu peux tout à fait nommer ta classe métier Membres

Discussions similaires

  1. Architecture MVC avec PHP et performances
    Par kfa1983 dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2012, 20h45
  2. [PHP 5.0] [Optimisation] - MVC, avec ou sans POO ? Avec ou sans Framework ?
    Par Astriel dans le forum Langage
    Réponses: 10
    Dernier message: 07/02/2011, 14h32
  3. Réponses: 1
    Dernier message: 28/11/2007, 11h52
  4. Réponses: 7
    Dernier message: 23/10/2007, 07h12
  5. Diagramme de classes d'une architecture MVC
    Par maglif dans le forum MVC
    Réponses: 1
    Dernier message: 20/05/2007, 15h53

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