Hostinger

MVC ⥂ Symfony

Fonctionnement de Symfony

Avant de se lancer dans la compréhension du lien entre le MVC et Symfony, il est essentiel de saisir son fonctionnement global (le fonctionnement de Symfony).

Lorsqu’un utilisateur demande une page, une requête HTTP est envoyée au serveur.

Symfony reçoit cette requête et la transmet à son routeur, qui analyse l’URL pour déterminer quelle route correspond. Une fois la route trouvée, Symfony appelle le contrôleur associé.

Ce contrôleur peut alors interagir avec le modèle (les bases de données, ...), exécuter des traitements, puis préparer les données à afficher.

Enfin, le contrôleur transmet ces données à une vue (gérée par Twig), qui génère le HTML final envoyé à l’utilisateur.

Ce cycle complet est le cœur du fonctionnement de Symfony, et il est essentiel de bien le comprendre.

Fonctionnement du framework Symfony

Lien entre le MVC et le framework Symfony

Voici un schéma qui fait le lien entre l'architecture MVC et Symfony :

Relation entre le MVC et le framework PHP Symfony

Ce schéma illustre le modèle MVC, où le "C" représente les contrôleurs Symfony qui gèrent les interactions, et le "V" la vue qui affiche les données prêtes ou la page finale.

Quant au "M", il apparaît deux fois. Il désigne la gestion des données dans une base de données, mais aussi l’ensemble de la logique métier qui définit comment ces données sont manipulées, transformées ou utilisées dans l’application.

Autrement dit, le "M" (Modèle) ne se limite pas à la base de données : il englobe tout ce qui concerne les règles de calcul, les conversions, les validations ou les traitements internes que Symfony exécute avant d’envoyer les informations à la vue.

C'est pour cette raison que je l'ai placé sur le base de données et sur la flèche entre la base de données le contrôleur !

Vous maîtrisez désormais la relation entre l’architecture MVC et Symfony, ainsi que le fonctionnement internet de Symfony au-delà du MVC.

Plusieurs framework PHP existent, alors voyons ensemble pourquoi choisir Symfony.