Architecture-MVC

De Didaquest
Aller à la navigationAller à la recherche

L’architecture MVC (modèle, vue et contrôleur) est un concept très puissant qui intervient dans la réalisation d’une application. Son principal intérêt est la séparation des données (modèle), de l’affichage (vue) et des actions (contrôleur).

Ce concept peut très bien être appliqué à un site internet. De nombreux sites internet disposent d’une plateforme d’administration pour modifier facilement les contenus. Il est bien évident que l’utilisateur qui va utiliser ce système pour créer des pages ne doit pas modifier la structure complète du site, ni les actions ni l’affichage. Pour qu’il ne modifie que les données, celles-ci doivent alors être isolées.


C’est sur ce constat que se base le système MVC. Chaque partie est bien distincte. Les données peuvent provenir d’une source quelconque et la vue peut être conçue par des webdesigners n’ayant pas de connaissance en programmation.

Avantages du MVCL

L'approche MVC apporte de réels avantages:

  • Une conception claire et efficace grâce à la séparation des données de la vue et du contrôleur
  • Un gain de temps de maintenance et d’évolution du site
  • Une plus grande souplesse pour organiser le développement du site entre différents développeurs (indépendance des données, de l’affichage (webdesign) et des actions)

Inconvénients

L’inconvénient majeur du modèle MVC n’est visible que dans la réalisation de petits projets, de sites internet de faible envergure.

En effet, la séparation des différentes couches nécessite la création de plus de fichiers (3 fois plus exactement):

  • Un fichier pour le modèle
  • Un fichier pour le contrôleur
  • Un fichier pour la vue

Il n’est donc pas très intéressant de recourir à ce système dans ce cas là.

MVC, comment ça marche?

L’architecture MVC est donc décomposée en trois étapes:

Le Modèle

Le modèle correspond aux données, la plupart du temps stockées dans une base de données. Mais celles-ci peuvent également êtres contenues dans un fichier XML ou dans des fichiers texte.

Les données peuvent être exploitées sous forme de classes, dans un langage de programmation orientée objet (comme PHP5).

Le Contrôleur

Le contrôleur est l’élément qui va utiliser les données pour les envoyer à la vue. Son rôle est donc de récupérer les informations, de les traiter en fonction des paramètres demandés par la vue (par l’utilisateur, exemple: afficher les derniers articles), puis de renvoyer à la vue les données afin d’être affichées.

Le contrôleur peut donc instancier différents objets (classe User, classe Articles, …) qui enverront des requêtes vers la base de données ou récupéreront des données XML.

La transmission à la vue des données récupérées se fait généralement à l’aide d’un template: insertion des données dans un fichier HTML qui va être envoyé au navigateur.

La vue

La vue correspond à un fichier HTML la plupart du temps (peut être un fichier XML avec une feuille de style XSL). Elle se contente d’afficher le contenu qu’elle reçoit sans avoir connaissance des données.

Elle ne contient que les informations liées à l’affichage. Dans le cas d’une page HTML, elle contient les éléments et les balises

< h1 >, < p >, < div > etc 

dans lesquels vont venir s’insérer les contenus.

Conclusion

L’architecture MVC est une solution très intéressante et très puissante, à mettre en œuvre dans de grands projets de préférence. L’indépendance des trois couches est très importante, car c’est grâce à cette différenciation que l’architecture puise sa puissance et sa logique.

Il est ainsi facile de mettre à jour le design de son site, sans toucher aux données ni à la façon dont elles sont organisées. Inversement, il est aussi facile de modifier la structure de stockage des données ou la manière dont elles sont gérées sans bouleverser l’affichage.

Sur Internet