Symfony

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Cet article ou cette section ne s'appuie pas, ou pas assez, sur des sources secondaires ou tertiaires (juillet 2016).

Pour améliorer la vérifiabilité de l'article, merci de citer les sources primaires à travers l'analyse qu'en ont faite des sources secondaires indiquées par des notes de bas de page (modifier l'article).

Symfony
Logo

Projet par défaut de Symfony.
Projet par défaut de Symfony.

Développeur SensioLabs
Première version
Dernière version 3.2.0 ()[1]Voir et modifier les données sur Wikidata
Version avancée 3.1.0-RC1 ()[2]Voir et modifier les données sur Wikidata
Écrit en PHP
Environnement Multiplate-forme
Langues Multilingue
Type Framework
Licence MIT
Site web www.symfony.com

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.

Histoire[modifier | modifier le code]

L'agence web française SensioLabs est à l'origine du framework Sensio Framework[3]. À force de toujours recréer les mêmes fonctionnalités de gestion d'utilisateurs, gestion ORMetc., elle a développé ce framework pour ses propres besoins[réf. nécessaire]. Comme ces 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.

Utilisations[modifier | modifier le code]

Symfony est utilisé par Askeet et beaucoup d'autres applications[5], dont Delicious[6] et les vingt millions d'utilisateurs de Yahoo! Bookmarks[7]. En 2009, Dailymotion a porté son code sur Symfony et a continué la transition[8].

Les projets les plus connus utilisant Symfony sont eZPublish (utilisation de Symfony 2 en full stack[9]), Drupal depuis la version 8 (utilisation de composants Symfony), phpBB, Laravel, Joomla!, Composer, Magento, Piwik[10].

Fonctionnalités[modifier | modifier le code]

Symfony utilise la version 5 de PHP (PHP ≥ 5.2.4 pour Symfony 1.x, PHP ≥ 5.3.3 pour Symfony 2.x et PHP ≥ 5.5.9 pour Symfony 3.x).

Symfony (1.x) propose entre autres :

  • 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 YAML ;
  • un générateur de back-office et un lanceur de module (scaffolding) ;
  • l'internationalisation native ;
  • une couche de mapping objet-relationnel (ORM) et une d'abstraction de données ;
  • le support d'AJAX ;
  • une architecture extensible permettant créations et utilisations de plugins.

Symfony fournit une interface en ligne de commande pour améliorer la productivité en créant un code de base modifiable à volonté.

Avantages et Limites de Symfony[11][modifier | modifier le code]

Avantages[modifier | modifier le code]

  • Le framework Symfony est très modulaire et il est possible d'en choisir uniquement certains morceaux.
  • Symfony a été conçu pour s'intégrer facilement avec un ORM tel que Doctrine permettant de faciliter la persistence d'objets en base de données.
  • Gestion multi-lingues simplifiée
  • Système intégré d'améliorations des performance
  • Existence de nombreux Bundles/pluggins tel que SONATA
  • Forte capacité d'évolution
  • Communauté toujours plus grande (plus de 300 000 développeurs dans 120 pays)[12]
  • Contrairement à d'autres solutions le Labs de R&D à l'origine de la solution continue de distribuer de nouvelles versions : sensiolabs

Limites[modifier | modifier le code]

Symfony est un mastodonte et n'est pas approprié à tous les usages : "il n'est pas utilise de tuer une mouche avec un bazooka". En effet la courbe d'apprentissage est longue pour parfois un retour sur investissement faible (ex: création d'un simple site vitrine)

Pour autant son créateur est conscient de cette faiblesse[réf. souhaitée] et propose 3 axes de solutions :

  1. Utilisation d'un micro-framework allégé : silex
  2. Utilisation d'autres framework plus léger (NDLR : toujours basé sur SF)  : Laravel
  3. Utilisation de solutions de CMS tel que Joomla (NDLR : là encore basé sur SF)

Notes et références[modifier | modifier le code]

  1. https://symfony.com/blog/symfony-3-2-0-released
  2. « Symfony 3.1.0-RC1 released »
  3. (en) « Forum de symfony » (ArchiveWikiwixArchive.isGoogleQue faire ?), sur http://forum.symfony-project.org/, consulté le .
  4. (en) Gilles Taupenas, « Symfony Live Day 2 », sur http://www.symfony-project.org/ (consulté le 18 février 2011).
  5. (en) « ApplicationsDevelopedWithSymfony », sur http://trac.symfony-project.org/ (consulté le 18 février 2011).
  6. (en) Fabien Potencier, « Delicious Preview built with symfony », sur http://www.symfony-project.org/ (consulté le 18 février 2011).
  7. (en) Francois Zaninotto, « Yahoo! bookmarks uses symfony », sur http://www.symfony-project.org/ (consulté le 18 février 2011).
  8. (en) Fabien Potencier, « Dailymotion, powered by symfony », sur http://www.symfony-project.org/ (consulté le 18 février 2011).
  9. http://ez.no/
  10. « Projects using Symfony », sur symfony.com (consulté le 9 septembre 2015)
  11. (fr) « Choisir & Comprendre le framework Symfony, Choisir son CMS », Acti | Think business, act digital,‎ (lire en ligne)
  12. (en) SensioLabs, « Symfony Community (join, meet, contribute and learn from on of the biggest PHP communities) », sur symfony.com (consulté le 13 février 2017)

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]