L’architecture MVC
MVC est l’acronyme de Modèle-Vue-Contrôleur. Dans un but d’organisation, ce modèle sépare les fichiers qui composent vos pages en trois catégories :
- Le modèle : il sert uniquement à faire vos requêtes SQL.
- La vue : elles contiennent tout ce qui sera affiché dans le navigateur du client.
- Le contrôleur : il se charge d’appeler tous les éléments requis pour la création de la page.
Petite explication du schéma ici à droite : l’utilisateur, voulant afficher la page, appelle la vue. La vue, à son tour va appeler son contrôleur. Celui-ci va tout prendre en charge, il reçoit les événements déclenchés par l’utilisateur et enclenche la réponse à ces événements.
Pour se faire, il va appeler le modèle qui va traiter les données et interagir avec la base de données. Il va renvoyer des données sous forme brute (sans HTML) au contrôleur qui l’a appelé.
Le contrôleur, une fois sa tâche achevée, va tout envoyer à la vue qui mettra tout en forme.
Eh bien, les avantages, même si ils ne sont pas la solution à tous vos problèmes d’organisation sont toute fois assez importants.
- Clarté du code : grâce à la séparation entre le code, les requêtes et l’affichage HTML;
- Gain de temps lors de mises-à-jours de votre projet;
- Facilités pour le travail en groupe.
Le modèle
Le modèle va s’occuper de toutes les relations avec la base de données de votre site. Lorsque le contrôleur appelle un modèle, ce dernier lui transmet le retour de la requête effectuée en données brutes – aucune mise en forme n’est appliqué dans le modèle. Il peut effectuer des lectures, insertions et mises-à-jour dans les champs.
Plusieurs vues peuvent afficher les informations obtenues dans un même modèle. Cela signifie que vous n’êtes pas obligés de créer un modèle par vue.
La vue
C’est tout ce que l’utilisateur verra. Il interagit uniquement avec la vue. La vue a deux tâches :
- Afficher les informations récupérées du contrôleur
- Recevoir les événements créés par l’utilisateur (remplissage d’un champ, clic de souris,…) et de les transmettre au contrôleur.
La vue n’effectue aucune action, aucun traitement. Elle se contente d’afficher les informations.
Le contrôleur
Le contrôleur se charge aussi d’appeler tous les composants : vue, modèle, helpers, bibliothèques, … Il va utiliser toutes les données pour les envoyer à la vue. Il va récupérer les informations que la vue lui fournit, puis les traiter. Si un utilisateur modifie un texte, la vue va informer le contrôleur qui demandera la modification au modèle correspondant.
Il n’y a qu’un seul contrôleur par URL. Une vue ne peut appeler qu’un et un seul contrôleur.
Le contrôleur est donc la partie la plus importante pour le développeur.