MVC ou Model View Controller

Publié le par Christophe

Un motif de conception MVC définit un moyen d'organiser le code en fonction de chacune de ces parties:

mvc.png

Le modèle qui définit la logique métier et inclus tout ce qui concerne le comportement  de l'application.
  • Il encapsule le cœur fonctionnel de l'application, le domaine logique.
  • Le traitement des données (la base de données) et la gestion des données
  • L'interaction avec la base de données
  • La garantie de l'intégrité des données
  • Des méthodes pour mettre à jour la base de données: l'insertion, la suppression, la mise à jour et la récupération.
  • La possibilité d'autoriser des vues partielles
  • Ne génère aucune présentation
  • Classes et fichiers stockés dans le répertoire lib/model/

La vue représente l'interface avec laquelle l'utilisateur agit:
  • Présente les résultats renvoyés par le modèle
  • Reçoit les actions de l'utilisateur: clic, sélection d'entrée, bouton, etc.
  • N'effectue aucun traitement, juste affiche les résultats effectués
  • Peut être conçu en html ou autre langage de présentation

Le contrôleur est la partie du code appelant le modèle pour en récupérer les données qu'il transmet ensuite à la vue pour le rendu final.
  • Effectue le gestion des événements de synchronisation pour mettre à jour la vue ou le modèle et les synchronise
  • Si une action nécessite un changement de données, le contrôleur demande la modification des données au modèle et avertit la vue que les données ont changé pour qu'elle se mette à jour.
  • Il n'effectue aucun traitement, mais analyse la requète du client et appelle le modèle adéquat et renvoie la vue correspondant à la demande.
  • Il gère les erreurs 404, 401.
  • Il est matérialisé par les fichiers "actions.class.php" qui sont associés aux modules.

Déroulé de fonctionnement dans le modèle MVC, inspiré des tutoriels de Serge Tahé.
  1. Le client fait une demande au contrôleur. Ce contrôleur voit passer toutes les demandes des clients. C'est la porte d'entrée de l'application.
  2. Le contrôleur traite cette demande. Il peut avoir besoin de l'aide de la couche métier pour réaliser ce traitement.
  3. Le contrôleur reçoit une réponse de la couche métier. La demande du client a été traitée. Celle-ci peut appeler plusieurs réponses possibles.
  4. Un exemple classique est une page d'erreurs si la demande n'a pu être traitée correctement une page de confirmation
  5. Sinon le contrôleur choisit la réponse (= vue) à envoyer au client. Celle-ci est le plus souvent une page contenant des éléments dynamiques. Le contrôleur fournit ceux-ci à la vue.
  6. La vue est envoyée au client.
Autre explication possible du déroulé, tiré du site Lafermeduweb
  1. Le Contrôleur est en quelque sorte le chef d'orchestre, il va analyser la requête du visiteur, effectuer les contrôles, puis il va appeler le Modèle concerné.
  2. Le modèle effectue toutes les requêtes SQL nécessaires pour récupérer les informations et les map dans un objet.
  3. Et pour terminer, le contrôleur passe les données du modèle à la vue concernée et retourne le rendu de la page au navigateur.
Publicité

Publié dans Symfony

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article