Tutoriel du framework MVC pour les débutants : qu'est-ce que c'est, Architecture et exemple
Qu’est-ce que le framework MVC ?
Le Modèle-Vue-Contrôleur (MVC) Le framework est un modèle architectural qui sépare une application en trois composants logiques principaux : modèle, vue et contrôleur. D'où l'abréviation MVC. Chaque composant d'architecture est conçu pour gérer un aspect de développement spécifique d'une application. MVC sépare la logique métier et la couche de présentation les unes des autres. Il était traditionnellement utilisé pour les interfaces utilisateur graphiques (GUI) de bureau. De nos jours, l'architecture MVC dans la technologie Web est devenue populaire pour la conception d'applications Web ainsi que d'applications mobiles.
Histoire de MVC
- L'architecture MVC a été discutée pour la première fois en 1979 par Trygve Reenskaug
- Le modèle MVC a été introduit pour la première fois en 1987 dans le langage de programmation Smalltalk.
- MVC a été accepté pour la première fois en tant que concept général, dans un article de 1988.
- Ces derniers temps, le modèle MVC est largement utilisé dans les applications Web modernes.
Caractéristiques de MVC
- Testabilité facile et sans friction. Framework hautement testable, extensible et enfichable
- Pour concevoir une architecture d'application Web à l'aide du modèle MVC, il offre un contrôle total sur votre code HTML ainsi que sur vos URL.
- Tirez parti des fonctionnalités existantes fournies par ASP.NET, JSP, Django, etc.
- Séparation claire de la logique : modèle, vue, contrôleur. Séparation des tâches d'application, à savoir. logique métier, logique Ul et logique d'entrée
- Routage d'URL pour les URL optimisées pour le référencement. Mappage d'URL puissant pour des URL compréhensibles et consultables
- Prise en charge du développement piloté par les tests (TDD)
MVC Architecture
Voici l’architecture détaillée du framework MVC :
Les trois composants MVC importants sont :
- Modèle : il comprend toutes les données et leur logique associée
- Vue : présente les données à l'utilisateur ou gère l'interaction de l'utilisateur
- Contrôleur : une interface entre les composants Model et View
Voyons ce composant en détail :
Résumé
Une vue est la partie de l'application qui représente la présentation des données.
Les vues sont créées par les données collectées à partir des données du modèle. Une vue demande au modèle de fournir des informations afin qu'il présente la présentation de sortie à l'utilisateur.
La vue représente également les données des graphiques, des diagrammes et des tableaux. Par exemple, n'importe quelle vue client inclura tous les composants de l'interface utilisateur tels que les zones de texte, les listes déroulantes, etc.
Le contrôleur est la partie de l'application qui gère l'interaction de l'utilisateur. Le contrôleur interprète les entrées de la souris et du clavier de l'utilisateur, informant le modèle et la vue à modifier le cas échéant.
Un contrôleur envoie des commandes au modèle pour mettre à jour son état (par exemple, enregistrer un document spécifique). Le contrôleur envoie également des commandes à sa vue associée pour modifier la présentation de la vue (par exemple faire défiler un document particulier).
Modèle
Le composant de modèle stocke les données et la logique associée. Il représente les données transférées entre les composants du contrôleur ou toute autre logique métier associée. Par exemple, un objet Controller récupérera les informations client de la base de données. Il manipule les données et les renvoie à la base de données ou les utilise pour restituer les mêmes données.
Il répond à la demande des vues et répond également aux instructions du contrôleur pour se mettre à jour. C'est également le niveau le plus bas du modèle qui est responsable de la maintenance des données.
Exemples MVC
Voyons un exemple de Model View Controller de la vie quotidienne :
Exemple 1
- Supposons que vous alliez au restaurant. Vous n’irez pas à la cuisine et préparerez des plats que vous pouvez sûrement faire chez vous. Au lieu de cela, vous y allez et attendez que le serveur arrive.
- Maintenant, le serveur vient vers vous et vous commandez la nourriture. Le serveur ne sait pas qui vous êtes et ce que vous voulez, il vient d'écrire les détails de votre commande de nourriture.
- Ensuite, le serveur se dirige vers la cuisine. Dans la cuisine, le serveur ne prépare pas votre nourriture.
- Le cuisinier prépare votre nourriture. Le serveur lui remet votre commande ainsi que votre numéro de table.
- Cuisinez ensuite les plats préparés pour vous. Il utilise des ingrédients pour cuisiner la nourriture. Supposons que vous commandiez un sandwich aux légumes. Ensuite, il a besoin de pain, de tomates, de pommes de terre, de poivrons, d'oignons, de morceaux, de fromage, etc. qu'il se procure dans le réfrigérateur.
- Cuire la dernière fois et remettre la nourriture au serveur. Il incombe désormais au serveur de déplacer ces aliments hors de la cuisine.
- Le serveur sait désormais quels plats vous avez commandés et comment ils sont servis.
Dans cet exemple d'architecture MVC,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Voyons un autre exemple de modèle MVC,
Exemple 2
Le mécanisme de conduite automobile est un autre exemple du modèle MVC.
- Chaque voiture se compose de trois parties principales.
- View= Interface utilisateur : (Levier de vitesses, panneaux, volant, frein, etc.)
- Contrôleur-Mécanisme (moteur)
- Modèle- Stockage (Réservoir Essence ou Diesel)
La voiture fonctionne à partir du moteur et prend le carburant du stockage, mais elle ne fonctionne qu'en utilisant les périphériques d'interface utilisateur mentionnés.
Frameworks Web MVC populaires
Voici une liste de quelques frameworks MVC populaires :
- Ruby sur Rails
- Django
- CakePHP
- Yii
- CerisePy
- Printemps MVC
- Catalyseur
- Rails
- Cadre Zend
- CodeIgniter
- Laravel
- PHP de carburant
- Symphony
Avantages de MVC : avantages clés
Voici les principaux avantages de l’utilisation de l’architecture MVC :
- Maintenance de code facile, facile à étendre et à développer
- Le composant du modèle MVC peut être testé séparément de l'utilisateur
- Prise en charge plus facile pour les nouveaux types de clients
- Le développement des différents composants peut être réalisé en parallèle.
- Il vous aide à éviter la complexité en divisant une application en trois unités. Modèle, vue et contrôleur
- Il utilise uniquement un modèle Front Controller qui traite les requêtes d’application Web via un seul contrôleur.
- Offre le meilleur support pour développement piloté par les tests
- Cela fonctionne bien pour les applications Web prises en charge par de grandes équipes de concepteurs et de développeurs Web.
- Fournit une séparation nette des préoccupations (SoC).
- Optimisation des moteurs de recherche (SEO).
- Toutes les classes et objets sont indépendants les uns des autres afin que vous puissiez les tester séparément.
- Le modèle de conception MVC permet un regroupement logique des actions associées sur un contrôleur.
Inconvénients de l'utilisation de MVC
- Difficile de lire, modifier, tester unitairement et réutiliser ce modèle
- La navigation dans le framework peut parfois être complexe car elle introduit de nouvelles couches d'abstraction qui obligent les utilisateurs à s'adapter aux critères de décomposition de MVC.
- Pas de support de validation formel
- Complexité accrue et inefficacité des données
- La difficulté d'utiliser MVC avec l'interface utilisateur moderne
- Il est nécessaire que plusieurs programmeurs effectuent une programmation parallèle.
- La connaissance de plusieurs technologies est requise.
- Maintenance de nombreux codes dans Controller
3 niveaux Architecture contre MVC Architecture
Paramètres | 3-Tier Architecture | MVC Architecture |
---|---|---|
Communication | Ce type de modèle d'architecture ne communique jamais directement avec la couche de données. | Toutes les couches communiquent directement en utilisant la topologie triangulaire. |
Utilisation | 3 niveaux : largement utilisé dans les applications Web où le client, les niveaux de données et le middleware s'exécutent sur des plates-formes physiquement distinctes. | Généralement utilisé sur les applications qui s'exécutent sur un seul poste de travail graphique. |
Résumé
- Le MVC est un modèle architectural qui sépare une application en 1) Modèle, 2) Vue et 3) Contrôleur.
- Modèle : il comprend toutes les données et leur logique associée
- Vue : présente les données à l'utilisateur ou gère l'interaction de l'utilisateur
- Contrôleur : une interface entre les composants Model et View
- L'architecture MVC a été discutée pour la première fois en 1979 par Trygve Reenskaug
- Architecture MVC dans Java est un framework hautement testable, extensible et enfichable
- Certains frameworks MVC populaires sont Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP, etc.