A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

4.2. Séparer la logique métier du code de présentation

Un site Web type a trois types de fonctionnalités: le code implémentant la logique applicative, le code implémentant l'interaction avec l'utilisateur et le code de rendu HTML (présentation). Avant les frameworks PHP, les développeurs fusionnaient généralement ces trois types de code dans un gros fichier PHP, ce qui était pénible à tester et à maintenir, en particulier avec des sites volumineux.

Mais depuis cette sombre époque, PHP est devenu un langage orienté objet, vous pouvez maintenant organiser votre code en classes. Le modèle MVC (Model-View-Controller) est simplement un ensemble de règles vous indiquant comment organiser vos classes, pour les rendre faciles à maintenir.

En MVC, les classes implémentant la logique métier sont appelées des modèles, les extraits de code permetant le rendu des pages HTML sont appelés des vues et les classes chargées d'interagir avec l'utilisateur sont appelées des contrôleurs.

Les vues sont implémentée en tant qu'extraits de code et non en tant que classes. En effet, les vues sont généralement très simples et ne contiennent que des balises HTML mélangées aux données PHP (déjà traitées) à afficher.

L'objectif principal du concept MVC est de séparer la logique métier (modèles) de l'affichage (vues). Ceci est également appelé la séparation des préoccupations, lorsque chaque couche ne fait que ses tâches spécifiques.

En séparant les modèles des vues, vous réduisez le nombre de dépendances entre elles. Par conséquent, les modifications apportées à l'une des couches a le moins d'impact possible sur les autres couches. Cette séparation améliore également la réutilisabilité du code . Par exemple, vous pouvez créer plusieurs vues pour les mêmes modèles (thèmes modifiables).

Pour mieux comprendre comment cela fonctionne, rappelons qu'un site web est un programme PHP recevant une requête HTTP d'un serveur web, et produisant une réponse HTTP. La figure 4.2 montre comment une requête HTTP est traitée par l'application MVC et comment la réponse est générée:

Figure 4.2. Traitement de requête HTTP dans une application MVC Figure 4.2. Traitement de requête HTTP dans une application MVC

Vous avez maintenant une idée de la façon dont les modèles, les vues et les contrôleurs coopèrent pour générer du code HTML. Dans les sections suivantes, nous les décrivons plus en détails.


Top