Hello, aujourd’hui on se retrouve pour parler développement, organisation et western spaghetti, on va parler de l’architecture MVC.

Tu alignes les WP_Query au milieu de fichier mêlant PHP et HTML ? Même avec la plus grande des attentions, cela peut vite devenir difficilement lisible et maintenable. Laisse-moi te présenter une organisation utilisée par de nombreux frameworks populaires et à intégrer dans ton workflow, l’architecture MVC.

MVC, késako ? C’est l’acronyme pour Model-View-Controller (Modèle-Vue-Contrôleur). Il représente une architecture logicielle en trois parties distinctes aux rôles précis qui se veut structurée.

Un exemple valant mieux qu’un long discours, ensemble, on va faire un film grâce à l’architecture MVC. Établissons d’abord le rôle de chacun : l’utilisateur sera le producteur, le contrôleur prendra les traits du réalisateur, le modèle ceux du directeur de casting, la vue jouera le rôle du monteur et les données seront nos acteurs.

Pour commencer, le producteur demande au réalisateur d’élaborer un western ambitieux qui se nommera : “Le modèle, la vue et le contrôleur”. Notre réalisateur se met donc au travail et sa première étape est le choix des acteurs, pour cela, il charge le directeur de casting de lui trouver les personnes correspondant à ses critères.

Le modèle

Le rôle du modèle va être la liaison avec les données généralement présentes dans une base de données. Il va offrir des méthodes pour manipuler ces données comme la récupération, l’insertion, la suppression ou encore la mise à jour.

Point western : Notre directeur de casting fait donc passer des auditions et choisit nos trois acteurs : Print Eastwood, Lee Van Curl et Elipsis Wallach. Il les envoie auprès du réalisateur sur le lieu de tournage.

Nos acteurs sont là, il reste plus qu’à les faire jouer devant les caméras, notre réalisateur entre en scène.

Le contrôleur

Le contrôleur est la partie principale de l’architecture, car c’est lui qui va faire le lien entre l’utilisateur, le modèle et la vue. Quand l’utilisateur souhaite afficher une page, c’est le contrôleur qui va recevoir cette requête, il va se charger ensuite de récupérer les données via le modèle, manipuler celles-ci (tri, filtrage, condition, etc ..) pour les envoyer « prête à l’emploi » à la vue qui sera affichée à l’utilisateur.

Point western : Après avoir reçu l’ordre de faire un film, notre réalisateur s’est tourné vers un directeur de casting pour recruter des acteurs. Plusieurs jours de tournage plus tard, notre réalisateur a fait jouer toutes les scènes à nos acteurs, elles sont enregistrées sur les cartes mémoires, mais dans le désordre. Il doit donc se diriger vers notre monteur pour tout mettre en ordre.

La vue

La vue a un nom assez transparent, son rôle c’est l’affichage, elle reçoit les variables et se contente de les afficher au sein du code HTML. Généralement les frameworks utilisant une architecture MVC, adopte un moteur de template comme Twig ou Smarty, mais on en reparlera plus tard  . La bonne pratique veut qu’aucun calcul ou manipulation de variable ne soit effectué dans la vue, seulement des boucles et des conditions pour l’affichage.

Point western : Après quelques jours de travail, notre monteur a mis dans le bon ordre les différentes scènes tournées, le film est prêt à être visionné et envoyé directement au producteur.

Schéma général d'une architecture MVC
Schéma général d’une architecture MVC

 

Mon exemple avec la création d’un film était assez simple avec un seul modèle et une seule vue, mais on pourrait facilement la compliquer en ajoutant un chef opérateur, une costumière ou un décorateur dans les modèles et une bande-annonce ou encore une version longue dans les vues par exemple.

Les frameworks adorent l’architecture MVC

L’architecture MVC n’est pas nouvelle, mais avec la complexité grandissante des applications web son utilisation en devient presque obligatoire. Tous les principaux frameworks web l’utilisent comme Symfony, Laravel ou encore CodeIgniter. Le gain en clarté et en organisation est assez important, imagine si pour faire notre film le réalisateur avait dû faire tout seul le casting, le tournage et le montage. Et bien c’est un peu ce qu’il se passe quand, sous WordPress, tu fais une WP_Query, un micmac sur les données récupérées et l’affichage de tout ça dans un seul et unique fichier qui mélange PHP et HTML

Comprendre l'architecture #MVC grâce à la métaphore du cinéma #web #devClick to Tweet

Si tu te destines à une carrière dans le développement ou l’intégration, se pencher sur l’architecture MVC, la comprendre et l’apprivoiser le plus tôt possible te sera très utile pour tes futurs stages et emplois où tu risques de la recroiser souvent

Architecture MVC : Diviser pour mieux développer
5 (100%) 5 vote[s]

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Je veux Contribuer

C'est parti

Je suis un Professionnel

Voyons voir