Symfony, le framework MVC PHP

Symfony est un framework MVC (Modèle-vue-contrôleur qui est une architecture logicielle que nous détaillerons).

Il a été créé en 2005 par SensioLabs, une agence Web française, et plus précisément par Fabien Potencier. Il l’a développé à l’origine pour ses propres besoins car elle devait toujours redévelopper les mêmes fonctionnalités.

Qu’est ce qu’un framework ?

Un framework permet de s’assurer qu’une application est bien structurée, qu’elle est maintenable et qu’il est possible de facilement la mettre à jour.

Il permet également de réutiliser des fonctionnalités déjà codées, en utilisant des modules.

En résumé, il s’agit d’un ensemble de logiciels permettant d’améliorer l’expérience et la productivité des développeurs.

Architecture la plus commune

L’architecture la plus commune consiste aujourd’hui dans l’utilisation du serveur Web NGINX, de PHP - FastCGI Process Manager qui permet d’utiliser le protocole FastCGI pour la communication entre un serveur Web et PHP et bien sûr de Symfony.


Pendant tout l’apprentissage du framework Symfony, vous n'aurez pas besoin de mettre en place cette architecture car vous utiliserez un serveur Web de développement fourni par PHP.

Quelles entreprises utilisent Symfony ?

De nombreuses entreprises utilisent Symfony. On peut par exemple citer Yahoo, Dailymotion, Joomla ou Drupal, Magento ou encore PrestaShop.

On peut également citer le journal Le Parisien, le site lafourchette, francetv, le site de la BBC, Auchan.fr etc.

En outre, le framework Laravel est basé sur Symfony et utilise de très nombreux composants Symfony.

En 2017, Symfony a été téléchargé plus d’un milliard de fois ce qui en fait l’un des frameworks Web les plus téléchargés (et donc utilisé) au monde.

L’architecture Modèle-Vue-Contrôleur (MVC)

L’architecture MVC est l’une des plus utilisées pour les applications Web. Elle consiste à découper l’application en modules qui ont trois responsabilités différentes :

  • Les modèles gèrent l’accès aux données (le plus souvent dans une base de données).
  • Les vues sont les interfaces graphiques présentées à l’utilisateur.
  • Les contrôleurs contiennent la logique des actions à effectuer suivant la requête de l’utilisateur.

MVC dans une application Web

La logique MVC se schématise ainsi :


L’utilisateur envoie une requête HTTP, par exemples POST /inscription.

Le routeur de l’application va appeler le bon contrôleur en fonction de la route (c’est-à-dire en fonction du verbe utilisé et de l’URI). Dans notre exemple, ce sera le contrôleur responsable de l’inscription d’un utilisateur.

Le contrôleur est responsable de coordonner les actions à effectuer. Ici par exemple, il peut vérifier le contenu de la requête, puis demander au modèle d’inscrire l’utilisateur dans la base de données. Une fois que le modèle aura inscrit l’utilisateur, il pourra préparer la vue à retourner à l’utilisateur.

Le modèle est responsable de la validation de la lecture et de l’enregistrement des données. Dans notre exemple, il va s’assurer que toutes les données pour créer un utilisateur ont bien été fournies. Dans l’affirmative il va créer l’utilisateur dans la base de données et le passer au contrôleur.

La vue est responsable de l’interface graphique. Elle contient la logique pour l’affichage des données qui ont été récupérées dans par le modèle.

Commencez notre formation Symfony dès à présent ! Si vous ne maitrisez pas PHP, il faudra suivre notre formation PHP avant car c'est un prérequis.