Le modèle MVC, connu par bon nombre de développeur objet, est un modèle théorique permettant de segmenter les différents parties d’une application.
Ainsi, on va pouvoir dissocier les différents couches applicatives : affichage, base de données, gestion des actions, sécurité, etc.
Le modèle MVC, c’est :
- M pour « modèle » : le modèle est la partie applicative permettant de gérer les traitements des données, c’est à dire principalement l’insertion/mise à jour et lecture des données dans la base de données, ainsi que les traitements de calcul qui seront effectués lorsqu’une action de l’utilisateur est lancé.
- V pour « vue » : la vue est la partie graphique (IHM : interface homme/machine) en relation avec l’utilisateur. En PHP, ce sera la couche permettant de générer le code HTML nécessaire à l’affichage.
- C pour « controleur » : le controleur est le noeud permettant de gérer la relation entre la vue et le modèle. En PHP, c’est une script procédural équivalent à un main dans un autre langage.
Bien que ce modèle MVC à trois couche est était très utilisé pendant des années, il est nécessaire aujourd’hui d’appliquer plus de couche afin de mieux segmenter les programmes et de pouvoir intervenir plus facilement et plus rapidement. Aussi, la segmentation par couche permet d’alléger les scripts et de rendre les bibliothèques plus légères.
Quelques sont les couches que l’on peut mettre en place ???
Et bien les voici :
- IHM/contrôleur : couche permettant de gérer les différentes actions,
- Graphique : couche permettant de générer les différents codes HTML ,
- Identification : couche permettant de gérer les droits d’accès,
- Sécurité : couche permettant le contrôle des données,
- BDD : couche permettant de gérer les différentes requêtes SQL,
- SGBD : couche permettant de gérer la creation des listing à partir de la couche BDD,
- PDF : couche permettant de générer des fichiers PDF à partir de données,
- et toutes les autres dont on a besoin …
Dans tous les cas, la segmentation par couche permet de segmenter les scripts, d’alléger le chargement des bibliothèques, d’éviter la redondance, et surtour de structurer les données et de diviser les différents services.