Présentation du framework Symfony2

logo-symfony2Symfony2 est un framework MVC libre écrit en PHP 5.
Son objectif est, comme pour tout framework, de faciliter et accélérer le développement de projets Internet (sites web, intranets et extranet).

Le framework symfony 2.x propose entre autres :

  • Organisation claire et organisée du code source pour une meilleure réutilisabilité
  • Accès à des outils open source comme Doctrine et des composants de templates (Twig), de sécurité, de formulaires, de validation et de traduction
  • URLs complètement flexibles, grâce au composant de routage
  • Puissants outils de mise en cache, pour des performances accrues.
  • Intégration d’outils de tests automatisés (tests unitaires et tests fonctionnels)

Intégration de Symfony2 dans Drupal et Prestashop

La qualité du framework et des ses principes ont fait qu’il a été choisi pour s’intégrer à d’autres outils de création de site, avec par exemple :

Le CMS Drupal 8 incorpore maintenant des modules issus de Symfony 2, comme Routing (définition d’URLS facilement indexables par exemple), Serializer (conversion d’objets PHP de et vers XML, JSON ou YAML) ou encore Validator (pour faciliter la validation de données).

De même, l’outil de création de boutiques en ligne PrestaShop 1.7 intègre lui aussi des éléments du framework Symfony (ainsi que son moteur de template Twig) afin d’améliorer ses performances et la sécurité du code notamment.

Projets basés sur Symfony2

Afin de me familiariser avec le framework, j’ai adapté les exemples proposés dans le livre ci-après pour mettre en place une idée que j’avais en tête :

Historique des versions de Symfony (SensioLabs)

5 versions majeures entre janvier 2007 et novembre 2019

Symfony 5

15
NOV
2019
Icone du logiciel Symfony 5

Symfony 5 a introduit trois nouveaux composants exclusifs : ErrorHandler, String et Notifier.

  • ErrorHandler : réécriture d’un composant existant pour la gestion des erreurs.
  • String : gestion des chaînes de caractères orientées objet et gestion complète d’unicode.
  • Notifier : envoi de notifications sur différents types de canaux (emails, SMS, canaux Slack, etc.)
  • Mise à jour de la version 4.4 de symfony vers la version 5 : plutôt simple et rapide. Il suffi de supprimer toutes les dépréciations (fonctions, classes et librairies qui ne seront plus disponibles) et de lancer la migration.

PHP ≥ 7.2

Symfony 4

15
NOV
2017

Symfony 4 est une version améliorée et plus légère de Symfony 3, qui est livrée par défaut avec moins de librairies optionnelles comme Doctrine.

  • Grosse amélioration des performances : c’est le framework PHP le plus rapide devant Laravel 5.x, Zend 3.0 et CakePHP 3.x. (à version de PHP égale)
  • Pour migrer de la version 3.4 à la version 4, la partie la plus difficile est d’incorporer Flex pour suivre la bonne structure de configuration / répertoire.

PHP ≥ 7.1

Symfony 3

15
NOV
2015

Le première version stable de symfony 3 est sortie en fin d’année 2015 apportant son lot de changements. Les plus notables concernent la suppression de méthodes obsolètes ou dépréciées.
La première LTS pour symfony 3 est prévue pour mi-2017 avec la version 3.4.

  • changements dans le nommage des méthodes proposées par le framework, le rendant plus clair et donc plus simple d’utilisation,
  • une centaine de méthodes supplémentaires ayant pour but de faciliter la vie des développeurs et surtout de produire des projets se rapprochant toujours plus des normes php (principalement des normes PSR).

PHP ≥ 5.5

Symfony 2.8

5
NOV
2015

Passer de symfony 2 vers symfony 3 peut se faire progressivement : dans le but de faciliter cette transition, la version 2.8 a vu le jour (version LTS).

PHP ≥ 5.3

Symfony 2

15
JUL
2011

La version 2 de Symfony est une ré-écriture complète du code !

Symfony 1.4

15
NOV
2009

Symfony 1.3 et 1.4 sont des versions identiques, mais la 1.4 est expurgée des fonctionnalités obsolètes de la 1.3 et a bénéficié de 3 ans de support..

  • Utilisation du modèle MVC : séparation du code en trois couches (Modèle, Vue et Contrôleur), pour une plus grande maintenabilité
  • Performances optimisées avec un système de cache pour assurer des temps de réponse rapides
  • Générateur de back-office
  • Internationalisation intégrée pour construire facilement un site multilingue
  • Architecture extensible à base de plugins
  • Intégration d’outils de tests unitaires et fonctionnels

Ressources pour Symfony2

Bibliographie

  • « Développez votre site avec le framework Symfony2 » : un livre clair et précis, avec pour trame de fond la réalisation d’un blog, pour assimiler les principes du framework.

Ailleurs sur le Net