Symfony est un ensemble de composants PHP ainsi qu'un framework MVC libre écrit en PHP . Il fournit des fonctionnalités modulables et adaptables qui permettent de faciliter et d’accélérer le développement d'un site web .
L'agence web française SensioLabs est à l'origine du framework Sensio Framework [ 2] . À force de toujours recréer les mêmes fonctionnalités de gestion d'utilisateurs, gestion ORM , etc. , elle a développé ce framework pour ses propres besoins[ 3] . Comme ses problématiques étaient souvent les mêmes pour d'autres développeurs, le code a été par la suite partagé avec la communauté des développeurs PHP .
Le projet est alors devenu Symfony (conformément à la volonté du créateur de conserver les initiales S et F de Sensio Framework ), puis Symfony2 à partir de la version 2[ 4] . La version 2 de Symfony casse la compatibilité avec la branche 1.x. À partir de la version 2, les ruptures de compatibilité entre les versions sont documentées pour faciliter les montées de version.
Le 5 septembre 2017 , Symfony passe la barre du milliard de téléchargements[ 5] .
Symfony est utilisé par Askeet et beaucoup d'autres applications[ 6] , dont Delicious [ 7] et Yahoo! Bookmarks[ 8] . En 2009, Dailymotion a porté son code sur Symfony et a continué la transition[ 9] .
Les projets les plus connus utilisant Symfony sont eZ Publish (utilisation de Symfony 3 en full stack [ 10] ), Drupal depuis la version 8 (utilisation de composants Symfony), phpBB , Laravel , Joomla! , Composer , Magento , Matomo [ 11] , PrestaShop depuis la version 1.7 (utilisation de composants Symfony).
Symfony étant basé sur PHP , il intègre les fonctionnalités apportées par les nouvelles versions de PHP .
Versions de PHP utilisées par Symfony
Versions de Symfony
Versions de PHP supportées
1.0
≥ 5.2.4
2.0
≥ 5.3.3
3.0
≥ 5.5.9
4.0
≥ 7.1
5.0
≥ 7.2.5
6.0
≥ 8.0
6.1
≥ 8.1
6.2
≥ 8.1[ 12]
6.3
≥ 8.1
6.4
≥ 8.1
7
≥ 8.2
7.1
≥ 8.2
7.2
≥ 8.2
Symfony propose entre autres à partir de sa première version démarrée en 2007[ 13] :
une séparation du code en trois couches, selon le modèle MVC , pour une plus grande maintenabilité et évolutivité ;
des performances optimisées et un système de cache afin d'assurer des temps de réponse optimaux ;
une gestion des URL parlante, permettant à une page d'avoir une URL distincte de sa position dans l'arborescence ;
un système de configuration en cascade utilisant pleinement le langage de description YAML ;
un générateur de back-office et un lanceur de module (scaffolding ) ;
l'internationalisation native ;
le support d'AJAX ;
une architecture extensible permettant créations et utilisations de plugins.
Sortie en 2011, la v2 apporte[ 14] :
Débutée en 2015, la v3 ajoute[ 15] :
De nouveaux composants ;
L'auto-wiring pour pouvoir injecter les dépendances automatiquement (sans les déclarer dans services.yaml) ;
Un micronoyau pour pouvoir faire des microframeworks .
Apparue en 2017, la v4 contient[ 16] :
Nouvel allègement du micronoyau, permettant une installation dite "squelette" en microframework ;
Renommage du dossier web/ en public/ ;
Utilisation du composant .env ;
Disponibilité du composant Messenger pour l'asynchrone via un bus d'évènement ;
Recettes d'installation avec Flex.
Née en 2019, la v5 bénéficie[ 17] :
D'un préchargement augmentant les performances de 15 % ;
Les nouveaux composants String et Notifier.
La version 6.0 est sortie en novembre 2021 et ne fonctionne qu'en PHP >= 8. Elle propose[ 18] :
Une amélioration du profileur avec les aperçus HTML des emails, et la refonte des logs avec filtrage ;
Un typage plus strict du framework ;
Une autocomplétion des commandes dans la console ;
Le support des énumérations comme valeurs des composants Form et Validator.
Symfony fournit une interface en ligne de commande pour améliorer la productivité en créant un code de base modifiable à volonté[ 19] .
↑ « Release 7.2.5 », 28 mars 2025 (consulté le 31 mars 2025 )
↑ (en) « Forum de symfony »(Archive.org • Wikiwix • Archive.is • Google • Que faire ? ) , sur http://forum.symfony-project.org/ (consulté le 18 février 2011 ) .
↑ « Développez votre site web avec le Framework symfony2 : Aux origines de Symfony (interview) »(Archive.org • Wikiwix • Archive.is • Google • Que faire ? ) [vidéo] , sur Vimeo , 15 septembre 2014 (consulté le 28 novembre 2018 ) .
↑ (en) Gilles Taupenas, « Symfony Live Day 2 »(Archive.org • Wikiwix • Archive.is • Google • Que faire ? ) , sur symfony-project.org (consulté le 18 février 2011 ) .
↑ (en) Fabien Potencier , « That’s official now. #Symfony joins the Unicorn club! 1 billion of … *free* downloads What a great community achievement. Thank you! pic.twitter.com/W7TxiiH27R », sur @fabpot , 1:25 pm - 5 sep 2017 (consulté le 5 novembre 2017 ) .
↑ (en) « ApplicationsDevelopedWithSymfony », sur trac.symfony-project.org (consulté le 18 février 2011 ) .
↑ (en) Fabien Potencier, « Delicious Preview built with symfony »(Archive.org • Wikiwix • Archive.is • Google • Que faire ? ) , sur symfony-project.org (consulté le 18 février 2011 ) .
↑ (en) Francois Zaninotto, « Yahoo! bookmarks uses symfony »(Archive.org • Wikiwix • Archive.is • Google • Que faire ? ) , sur symfony-project.org (consulté le 18 février 2011 ) .
↑ (en) Fabien Potencier, « Dailymotion, powered by symfony »(Archive.org • Wikiwix • Archive.is • Google • Que faire ? ) , sur symfony-project.org (consulté le 18 février 2011 ) .
↑ (en) « Ibexa DXP : The Digital Experience Platform dedicated to B2B », sur ez.no (consulté le 21 mai 2023 ) .
↑ « Projects using Symfony », sur symfony.com (consulté le 9 septembre 2015 ) .
↑ (en) Symfony, « Symfony, High Performance PHP Framework for Web Development », sur symfony.com (consulté le 21 mai 2023 ) .
↑ (en) Symfony, « Chapter 1 », sur symfony.com (consulté le 21 mai 2023 ) .
↑ (en) Symfony, « Symfony 2.0 (Symfony Blog) », sur symfony.com (consulté le 21 mai 2023 ) .
↑ (en) Symfony, « New in Symfony 3.0 (Symfony Blog) », sur symfony.com (consulté le 21 mai 2023 ) .
↑ (en) AlessandroMinoccheri, « Symfony 4 Installation and new features », sur dev.to , DEV Community , 18 mai 2018 (consulté le 21 mai 2023 ) .
↑ (en) « Highlights on Symfony 5 : New features to keep in mind », sur Blog Sensiolabs , 8 septembre 2020 (consulté le 21 mai 2023 ) .
↑ « Symfony 6 : quelles sont les nouveautés ?- Easy Partner », sur Easy Partner - Cabinet de Recrutement… , 6 avril 2022 (consulté le 21 mai 2023 ) .
↑ (en) « Download Symfony Framework and Components », sur symfony.com (consulté le 28 février 2022 ) .
Personnalités
Ressources
Implémentations
Frameworks web
Test
Mapping objet-relationnel
Environnement de développement
Toolkit