€ EUR
  • € EUR
  • $ USD
  • $ CAD

Architecture MVC : comprendre le modèle-vue-contrôleur en développement web

Dernière mise à jour le 19 Oct 2026
852967248dd3e6cb3942a1fe6af42945_L
L’architecture MVC sépare une application en trois parties : le modèle pour les données, la vue pour l’affichage et le contrôleur pour la logique. Fonctionnement, exemple concret, avantages, limites, frameworks et variantes modernes.

Article publié en 2010, entièrement réécrit et mis à jour en octobre 2026.

L’architecture MVC, pour modèle-vue-contrôleur, est l’un des principes d’organisation du code les plus répandus en développement web. Elle structure la plupart des frameworks PHP, Python, Ruby ou JavaScript et se retrouve, sous une forme ou une autre, dans de nombreux CMS.

Comprendre le MVC aide à choisir une technologie, à dialoguer avec une équipe de développement et à juger de la qualité d’un projet. Voici son fonctionnement, un exemple concret, ses avantages, ses limites et ses variantes modernes.

L’essentiel en bref

  • Le MVC sépare une application en trois rôles : le modèle (données), la vue (affichage) et le contrôleur (orchestration).
  • Cette séparation rend le code plus lisible, plus testable et plus facile à faire évoluer.
  • Laravel, Symfony, Django, Ruby on Rails ou ASP.NET MVC reposent sur ce principe.
  • Ses limites : plus de fichiers, une courbe d’apprentissage, et des contrôleurs qui grossissent si l’on n’y prend garde.
  • Des variantes comme MVVM ou les architectures par composants dominent aujourd’hui côté front-end.

Les trois composants du MVC

Composant Rôle Exemple sur une boutique
Modèle Gère les données et les règles métier, dialogue avec la base de données Un produit, son prix, son stock
Vue Affiche les informations à l’utilisateur La page produit en HTML
Contrôleur Reçoit la requête, appelle le modèle et choisit la vue L’action « afficher le produit 42 »

Le principe central est la séparation des responsabilités : la vue ne va pas chercher les données elle-même, le modèle ne s’occupe pas de l’affichage, et le contrôleur fait le lien entre les deux.

Comment circule une requête

  1. Le visiteur demande une page, par exemple la fiche d’un produit.
  2. Le routeur associe l’adresse à une action d’un contrôleur.
  3. Le contrôleur demande au modèle les informations du produit.
  4. Le modèle interroge la base de données, applique les règles métier et renvoie le résultat.
  5. Le contrôleur transmet ces données à la vue.
  6. La vue génère le HTML renvoyé au navigateur.

Pour un formulaire, le chemin est le même en sens inverse : le contrôleur reçoit les données envoyées, le modèle les valide et les enregistre, puis une vue de confirmation est affichée.

Les avantages du MVC

  • Un code organisé : chaque développeur sait où trouver et où placer chaque élément.
  • Un travail en parallèle : l’intégrateur travaille sur les vues pendant que le développeur back-end gère modèles et contrôleurs.
  • La réutilisation : un même modèle peut alimenter une page web, une API et une application mobile.
  • Des tests facilités : la logique métier isolée dans les modèles se teste sans interface.
  • Une maintenance simplifiée : on peut refondre l’apparence sans toucher aux règles métier.

Ces bénéfices rejoignent ceux des tests automatisés : un code bien découpé est plus facile à vérifier.

Les limites et les pièges

  • Plus de fichiers et de structure, parfois excessive pour un petit script.
  • Une courbe d’apprentissage pour les développeurs débutants.
  • Les « gros contrôleurs » : quand toute la logique s’y accumule, on perd l’intérêt du modèle. Les bonnes pratiques recommandent de garder les contrôleurs légers et de déplacer la logique dans des services ou des modèles.
  • Des interprétations variées : chaque framework applique le MVC à sa façon.

Les frameworks qui utilisent le MVC

Langage Frameworks
PHP Laravel, Symfony, CodeIgniter
Python Django (sous le nom MTV), Flask avec extensions
Ruby Ruby on Rails
C# ASP.NET Core MVC
Java Spring MVC

Côté CMS, PrestaShop s’organise aussi autour de contrôleurs, de modèles et de gabarits, tandis que Drupal et WordPress suivent leurs propres architectures, inspirées de principes proches. Notre article sur Drupal en donne un aperçu.

MVC, MVVM et architectures par composants

Côté navigateur, les frameworks modernes ont fait évoluer le modèle :

  • MVVM (modèle-vue-vue-modèle) : la vue est liée automatiquement aux données, comme dans Vue.js ou Angular.
  • Les composants : React ou Svelte regroupent affichage et comportement d’un élément d’interface dans un même composant, avec un état géré séparément.
  • Les API : le serveur ne renvoie plus de HTML mais des données, et le front-end s’occupe de l’affichage. Le serveur garde souvent une organisation MVC.

Le principe de séparation des responsabilités reste, lui, valable partout.

Pourquoi c’est important pour votre projet

Même sans être développeur, il est utile de demander à son prestataire comment le code est organisé. Une architecture claire, qu’elle soit MVC ou autre, conditionne le coût des évolutions futures, la facilité à changer de prestataire et la fiabilité du site. Avant de se lancer, les choix d’architecture méritent d’être discutés, comme nous l’expliquons dans les points forts et faibles d’un site sur mesure.

Questions fréquentes

Que signifie MVC ?

MVC signifie modèle-vue-contrôleur. C’est une façon d’organiser le code d’une application en séparant les données (modèle), l’affichage (vue) et la logique qui les relie (contrôleur).

Qui a inventé le MVC ?

Le modèle a été formalisé à la fin des années 1970 par Trygve Reenskaug, dans le cadre du langage Smalltalk, avant d’être adopté par le développement web à partir des années 2000.

Le MVC est-il encore utilisé ?

Oui, très largement côté serveur avec Laravel, Symfony, Django, Rails ou ASP.NET. Côté navigateur, il a évolué vers des architectures par composants ou MVVM.

WordPress utilise-t-il le MVC ?

Pas au sens strict. WordPress repose sur un système de thèmes, de hooks et de requêtes qui lui est propre, même si certaines extensions et thèmes adoptent une organisation inspirée du MVC.

Quelle différence entre MVC et MVVM ?

Dans le MVVM, une couche « vue-modèle » relie automatiquement la vue aux données, ce qui met à jour l’affichage dès qu’une donnée change. Il est surtout utilisé dans les interfaces riches côté navigateur.

En résumé

Le modèle-vue-contrôleur reste une référence pour organiser le code d’une application web : il sépare données, affichage et logique pour gagner en lisibilité, en testabilité et en maintenabilité. Ses variantes modernes conservent le même principe de séparation des responsabilités. Pour découvrir les outils du quotidien des développeurs, voir notre sélection d’outils open source.

    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.