Symfony
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.
Créateur | Fabien Potencier |
---|---|
Développé par | Symfony SAS |
Première version | , il y a 19 ans |
Dernière version | 7.1.6 ()[1] |
Dépôt | github.com/symfony/symfony |
Assurance qualité | Intégration continue |
Écrit en | PHP |
Système d'exploitation | Multiplateforme |
Environnement | Multiplate-forme |
Langues | Multilingue |
Type | Framework |
Licence | MIT |
Site web | www.symfony.com |
Histoire
modifierL'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 , Symfony passe la barre du milliard de téléchargements[5].
Utilisations
modifierSymfony 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).
Fonctionnalités
modifierVersions de PHP utilisées
modifierSymfony étant basé sur PHP, il intègre les fonctionnalités apportées par les nouvelles versions de PHP.
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 |
Nouveautés apportées par Symfony
modifierSymfony 1
modifierSymfony 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.
Symfony 2
modifierSortie en 2011, la v2 apporte[14] :
- L'injection de dépendances ;
- Une présélection de bundles (dépendances) ;
- Du cache HTTP ;
- Un profileur accessible par une barre d'outils.
Symfony 3
modifierDé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.
Symfony 4
modifierApparue 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.
Symfony 5
modifierNée en 2019, la v5 bénéficie[17] :
- D'un préchargement augmentant les performances de 15 % ;
- Les nouveaux composants String et Notifier.
Symfony 6
modifierLa version 6.0 est sortie en 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].
Notes et références
modifier- « Release 7.1.6 », (consulté le )
- (en) « Forum de symfony »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur http://forum.symfony-project.org/ (consulté le ).
- « 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, (consulté le ).
- (en) Gilles Taupenas, « Symfony Live Day 2 »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur symfony-project.org (consulté le ).
- (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 ).
- (en) « ApplicationsDevelopedWithSymfony », sur trac.symfony-project.org (consulté le ).
- (en) Fabien Potencier, « Delicious Preview built with symfony »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur symfony-project.org (consulté le ).
- (en) Francois Zaninotto, « Yahoo! bookmarks uses symfony »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur symfony-project.org (consulté le ).
- (en) Fabien Potencier, « Dailymotion, powered by symfony »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur symfony-project.org (consulté le ).
- (en) « Ibexa DXP : The Digital Experience Platform dedicated to B2B », sur ez.no (consulté le ).
- « Projects using Symfony », sur symfony.com (consulté le ).
- (en) Symfony, « Symfony, High Performance PHP Framework for Web Development », sur symfony.com (consulté le ).
- (en) Symfony, « Chapter 1 », sur symfony.com (consulté le ).
- (en) Symfony, « Symfony 2.0 (Symfony Blog) », sur symfony.com (consulté le ).
- (en) Symfony, « New in Symfony 3.0 (Symfony Blog) », sur symfony.com (consulté le ).
- (en) AlessandroMinoccheri, « Symfony 4 Installation and new features », sur dev.to, DEV Community, (consulté le ).
- (en) « Highlights on Symfony 5 : New features to keep in mind », sur Blog Sensiolabs, (consulté le ).
- « Symfony 6 : quelles sont les nouveautés ?- Easy Partner », sur Easy Partner - Cabinet de Recrutement…, (consulté le ).
- (en) « Download Symfony Framework and Components », sur symfony.com (consulté le ).
Voir aussi
modifierArticles connexes
modifier- PHP
- Modèle-vue-contrôleur
- Liste de frameworks PHP
- YAML
- Drupal (passages concernant la version 8)
- PrestaShop (passages concernant la version 1.7)
Liens externes
modifier- (en) Site officiel
- (en) Informations à propos de Symfony sur Black Duck Open Hub.