Symfony
|
|
Cet article est une ébauche concernant l’informatique.
Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
|
| Symfony | |
Logo |
|
|
|
|
Projet par défaut de Symfony |
|
|
|
|
| Développeur | Sensio Labs |
|---|---|
| Première version | 18 octobre 2005 |
| Dernière version | 2.2.1 (06 avril 2013) [+/-] |
| Écrit en | PHP |
| Environnement | Multiplate-forme |
| Langue | Multilingue |
| Type | Framework |
| Licence | MIT |
| Site web | www.symfony-project.org www.symfony.com |
| modifier |
|
Symfony est un framework MVC libre écrit en PHP 5. En tant que framework, il facilite et accélère le développement de sites et d'applications Internet et Intranet.
Sommaire |
Histoire [modifier]
Le site du framework symfony a été lancé en octobre 2005. À l'origine du projet, on trouve une agence web française, Sensio, qui a développé ce qui s'appelait à l'époque Sensio Framework[1] pour ses propres besoins et a ensuite souhaité en partager le code avec la communauté des développeurs PHP.
Le projet est alors devenu symfony (car le créateur voulait garder les initiales SF comme "Sensio Framework"), puis Symfony à partir de la version 2.0[2].
La version 2 de Symfony casse la compatibilité avec la branche 1.x. Ses fonctionnalités font choisir ce Framework comme base de la version 8 du populaire CMS Drupal[3].
Utilisations [modifier]
Symfony est utilisé par Askeet et beaucoup d'autres applications[4], dont Delicious[5] et les 20 millions d'utilisateurs de Yahoo! Bookmarks[6]. En 2009, Dailymotion a porté son code sur symfony et a continué la transition[7].
Fonctionnalités [modifier]
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é
- Un templating simple, fondé sur PHP et des jeux de fonctions additionnelles pour les gabarits nommées helpers;
- 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]
La qualité du code de Symfony le rend très adaptable :
- le code est découplé
- la séparation application / module permet de personnaliser facilement de nombreux paramètres
Symfony possède une importante communauté d'utilisateurs et de développeurs. De nombreux sites sont développés avec Symfony[4]. La version 8 du générateur de sites web Drupal, prévue fin 2013, se développe sous 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,
- Importante communauté d'utilisateurs de Symfony 2, vivier de développeurs Drupal potentiels
La documentation de Symfony, notamment en anglais, se compose de :
- tutoriels de référence : Askeet et Jobeet[8], 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
La plupart des ressources n'existent cependant encore qu'en anglais - bien que quelques traductions localisées soient en cours sur le wiki communautaire.
La fonctionnalité standalone — permettant à partir d'une instruction en ligne de commande d'insérer les bibliothèques de Symfony dans le dossier de développement — permet le déploiement du framework sur la plupart des hébergements mutualisés fournissant PHP5, sans nécessiter la ligne de commande.
Notes et références [modifier]
- (en) Forum de symfony, sur http://forum.symfony-project.org/. Consulté le 18 février 2011
- (en) Gilles Taupenas, « Symfony Live Day 2 », sur http://www.symfony-project.org/. Consulté le 18 février 2011
- https://speakerdeck.com/fabpot/symfony2-meets-drupal-8
- (en) ApplicationsDevelopedWithSymfony, sur http://trac.symfony-project.org/. Consulté le 18 février 2011
- (en) Fabien Potencier, « Delicious Preview built with symfony », sur http://www.symfony-project.org/. Consulté le 18 février 2011
- (en) Francois Zaninotto, « Yahoo! bookmarks uses symfony », sur http://www.symfony-project.org/. Consulté le 18 février 2011
- (en) Fabien Potencier, « Dailymotion, powered by symfony », sur http://www.symfony-project.org/. Consulté le 18 février 2011
- (fr+en) Practical symfony, sur http://www.symfony-project.org/. Consulté le 18 février 2011
Voir aussi [modifier]
Articles connexes [modifier]
- PHP
- Modèle-Vue-Contrôleur
- Liste de frameworks PHP
- YAML
- Drupal (passages concernant la version 8)
Liens externes [modifier]
- (en) Site officiel
- (fr) Tutoriel pour débuter avec le framework Symfony2
- (fr) Tutoriels vidéo pour débuter avec le framework Symfony2
- (en) Symfony sur Ohloh
- (fr) Tutoriel d'introduction pour symfony1
- #symfony : channel IRC (#symfony sur Freenode)
- #symfony-fr : channel IRC francophone (#symfony-fr sur Freenode)