Architecture MVC

Dernière mise à jour le 10 Juin 2010
852967248dd3e6cb3942a1fe6af42945_L

L’architecture MVC (Modèle, Vue et Contrôleur) est un concept très puissant qui est mis en place pendant 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 ou une application internet. De nombreux sites internet disposent d’une plateforme d’administration pour modifier facilement les contenus conçue selon le modèle MVC. 

 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. 

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)

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

1. 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).

2. 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.

3. 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 contient les éléments dans lesquels vont venir s’insérer les contenus.

mvc

En résumé, lorsqu’un client envoie une requête à l’application :

  • La requête envoyée depuis la vue est analysée par le contrôleur,
  • Le contrôleur demande au modèle approprié d’effectuer les traitements,
  • Le contrôleur renvoie la vue adaptée, si le modèle ne l’a pas déjà fait.

Conclusions:

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.

    Téléchargement du module

    Laissez-nous votre prénom et votre adresse de courriel pour vous envoyer le module par courriel:


      Pssssst Attendez...

      Laissez nous votre meilleure adresse email et vous recevrez le premier nos prochaines publications...


        Recevoir chaque semaine notre publication en avant première.

        Rejoignez nos 153 845 fidèles lecteurs et restez informés concernant le domaine du développement web, en étant le premier à recevoir notre publication chaque semaine.