Symfony

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Symfony
Symfony2.svg

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

Développeur SensioLabs
Première version
Dernière version 2.7.1 () [+/-]
Version avancée 2.8.0[1] ([2])
Écrit en PHP
Environnement Multiplate-forme
Langue Multilingue
Type Framework
Licence MIT
Site web www.symfony.com

Symfony est un framework MVC libre écrit en PHP 5 destiné majoritairement aux professionnels du développement. 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ême fonctionnalités de gestion d'utilisateurs, gestion ORMetc., elle a développé ce framework pour ses propres besoins. 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 (suite à 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.

Ce framework et ses fonctionnalités seront implémentés comme base de la version 8 du système de gestion de contenu Drupal[5].

Utilisations[modifier | modifier le code]

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

Fonctionnalités[modifier | modifier le code]

Symfony 1.x utilise PHP5 (version >= 5.2.4). Symfony 2.x requiert une version de PHP supérieure ou égale à 5.3.3

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é.

Atouts[modifier | modifier le code]

Unbalanced scales.svg Cette section ne respecte pas la neutralité de point de vue. Considérez son contenu avec précaution. Discutez-en en page de discussion.
Pour lancer la procédure de résolution du problème, remplacez ce bandeau par {{Désaccord de neutralité}}.
Cette section ne cite pas suffisamment ses sources (février 2011). Pour l'améliorer, ajoutez des références vérifiables [Comment faire ?] ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Quelques avantage de Symfony sont :

  • le code est découplé ;
  • la séparation application / module permet de personnaliser facilement de nombreux paramètres.

Symfony possède une communauté d'utilisateurs et de développeurs. Plusieurs sites sont développés avec Symfony[6]. La version 8 du générateur de sites web Drupal, prévue vers août 2015, utilise Symfony 2. L'équipe de développeurs Drupal justifie son choix par les éléments suivants :

  • meilleure lisibilité du code induite par les règles Symfony 2 ;
  • gestion directe des espaces de noms, dont l'absence jusqu'à Drupal 7 obligeait à l'usage de noms préfixés et donc incommodes ;
  • la communauté d'utilisateurs de Symfony 2 devient un vivier de développeurs Drupal potentiels.

La documentation de Symfony, principalement anglaise, se compose de :

  • tutoriels de référence [10], pour apprendre rapidement (en environ un mois, à raison d'une heure par jour) ;
  • deux livres présentant le framework et sur les formulaires ;
  • une API ;
  • des feuilles de résumé (cheat sheets) ;
  • des traductions dans plusieurs langues.

Bien que les principales ressources soient en anglais, quelques traductions localisées sont en cours sur le wiki communautaire. Beaucoup de fonctionnalités avancées du framework restent en revanche pas ou très peu documentées.

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

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]