SymfonyLive 2018 : Symfony 4 met le cap sur l'excellence
Ces deux jours ont été rythmés par des conférences autour du framework Symfony, aussi intéressantes les unes que les autres. Nous avons été touchés par l’introduction de la journée : une belle initiative en faveur de la protection des éléphants et plus particulièrement les éléphants orphelins grâce à l’association David Sheldrick Wildlife Trust. C’est la première fois que nous assistons à ce genre d’initiative et cela nous a particulièrement marqué.
Symfony 4 : un framework pour les gouverner tous
Comme chaque année, c’est Fabien Potencier, fondateur de Symfony, qui ouvre le bal avec une Keynote sur les nouveautés depuis la sortie de Symfony 4 en novembre 2017. Actuellement Symfony est en version béta 4.1, et dans les prochains mois, en misant plutôt sur la fin d’année, la version 4.4 sera disponible en LTS.
Autre nouveauté annoncée, l’utilisation des variables d’environnements via le fichier .env. Ainsi l’injection des paramètres de l’application ne devraient plus se faire via le fichier parameters.yml.
La légèreté, et la praticité de Symfony 4, rend obsolète des micro-frameworks qui répondent à cette problématique, à l’instar de Silex, dont l’arrêt du support est prévu pour juin 2018.
Pour donner un chiffre, Symfony 4, installé en skeleton ne fait pas plus de 13 fichiers !
Toujours dans une optique de légèreté, et pour se débarrasser de cette image de mastodonte qu’il traîne depuis des années, Symfony met la barre plus haut en permettant même d’alléger d’avantages les vendor installés en proposant de les « unpacker » afin de rendre visible ses dépendances et ainsi de supprimer celles qui n’ont aucune utilité dans le projet. Il devrait-être plus aisé qu’avant d’optimiser son application en termes de performances. En parlant de performances, il est nécessaire de préciser que Symfony 4 ne supporte plus PHP 5, et qu’il a été revu en profondeur pour répondre au mieux aux exigences de PHP 7, mais nous y reviendront.
Retours d’expérience et mise en pratique de Symfony 4
Cette nouvelle version a été mise en place chez Allociné, suite à la migration de leur API de connexion. C’était le sujet d’une autre conférence présentée par Estelle Le Cam (Lead dev chez Allociné). Elle a détaillé la roadmap de cette migration, mais sans rentrer dans les détails techniques de son implémentation. Elle a également parlé de leur méthode de versioning, sous Git, qui consiste à créer une branche par version de Symfony.

Symfony live
Ce retour d’expérience a été précédé par celui de Mathieu Santostefano, sur les outils les plus efficaces pour traduire une application Symfony, avec un comparatif des avantages/inconvénients de chacun. Et a fini par présenter l’outil le plus complet php-translation/symfony-bundle qui permet d’isoler complètement les traductions des développements applicatifs. Il a parlé notamment des rôles de chacun (développeur, chef de projet, traducteur) durant la phase de traduction, et comment via des outils (internes ou externes) faciliter le travail de chacun. Ces retours d’expérience nous ont concrètement démontré la mise en pratique de Symfony 4 et la facilité de l’intégrer dans un projet d’envergure.
Et l’architecture alors ?

Architecture modulaire symfony live
Toujours au sujet de l’architecture, c’est Romain Kuzniak (Chief Technology Officer, OpenClassRooms) qui à son tour nous a expliqué « la clean architecture » à travers un exemple de fermeture de sprint.
Seul bémol, cette approche n’est efficace que sur un projet à long terme, avec une équipe investie.

Clean architecture
Pour conclure sur le sujet de l’architecture, nous avons assisté à un duo de speakers sur la thématique de Doctrine, ou plus précisément : comment développer son modèle de données de façon à être le plus indépendant possible de son infrastructure. C’est le Domaine Driven Design, où le besoin de l’architecture est dicté par le code métier et non par l’infrastructure de l’application.
Testez-vous vos tests ?
PHP 7 et Symfony 4 : le duo de choc
Durant son talk, il donne les grandes lignes d’amélioration qui ont été apportées à Symfony avec la preuve des audits via BlackFire (un autre outil SensioLabs). Tout cela démontre bien que Symfony 4 tire pleinement partie de PHP 7 et devient le Framework le plus performant de l’écosystème PHP !

Classement symfony 4
GraphQL vs REST
Webpack Encore… encore ?
WorkFlow, une nouvelle version simplifiée
Messenger : la grande nouveauté

Composant messenger
Ce composant, maintenu par Symfony Core Team, est disponible uniquement à partir de Symfony 4.2 (il est possible de l’utiliser en mode développement dans la version 4.1). Il fait appel aux notions de Message Bus, Message Handler, Adpater et de Worker pour la gestion des messages de bout en bout d’un échange.
Cela permet, notamment grâce à une commande Symfony, d’envoyer les messages de façon asynchrone afin d’accélérer le processus en background. Seul bémol : la fonctionnalité de gestion des rejets n’est pas encore implémentée, il faudra donc le faire vous-même !
Conclusion
Et comme chaque année, c’est Sarah Khalil (IT Freelancer) qui conclut cette série de conférences officielles avec un retour sur une année de Symfony.
L’occasion de revenir sur les accomplissements de l’année écoulée en termes de nouveautés dans l’écosystème Symfony. Elle reprend globalement les annonces faites durant ces 2 jours, et donne plus de détails sur les changements majeurs des composants qui n’ont pas été abordés durant les conférences.
Ainsi elle nous a rappelé l’orientation de Symfony 4 vers la facilité de prise en main, la légèreté et la performance. En tant que développeurs, nous sommes particulièrement sensibles à cette nouvelle orientation, qui va nous permettre de penser différemment nos applications, et de nous concentrer sur notre cœur de métier.
C’est devenu une tradition : à la fin de chaque journée une quarantaine de minutes est réservées au principe des Lightning Talks. La parole est ainsi donnée au public, à raison de 7 min par personne (choisie à l’avance sur la base du volontariat).
Le sujet est libre (mais validé par les organisateurs au préalable) pour prendre place au pupitre et exposer un sujet, généralement des produits et services autour de Symfony.
Cette édition rend hommage aussi aux contributeurs de l’écosystème Symfony et de l’open source. Ces contributeurs ne sont motivés que par leur passion, ce qui a permis la construction d’un édifice incontournable dans le développement web Symfony.

Symfony live final
L’ambiance était cette année encore au rendez-vous : bonne humeur, convivialité et échanges sont les mots d’ordre de cette édition 2018.
En ce qui concerne les animations et les stands, on a eu la présence des partenaires habituels, à travers des jeux, des démos de leur outils et de nombreux goodies.
Les entités de SensioLabs, qui ont déjà de multiples stands (Symfony, BlackFire) ont rajouté cette année un nouveau stand pour la promotion de SensioLab University Learning. Sans oublier bien sur les stands de détente, avec les smoothies, café, yaourt et autres friandises offertes le long des deux jours !
Remerciements
Je tiens à remercier l’équipe des leads et développeurs qui ont assisté à cet événement, et qui ont grandement contribué à la rédaction de cet article, Attia Benselama, Anthony Ossent et Mohammed Aagour
votre commentaire
Se joindre à la discussion ?Vous êtes libre de contribuer !