Retour sur le Symfony Live London 2018
Publié le 01 octobre 2018
La semaine dernière, une partie de notre équipe s’est rendue à Londres dans le cadre du Symfony Live Londres, le rendez-vous annuel des passionnés du framework Symfony. Plus de 300 personnes ont répondu "présent" à cet événement. Passons en revue les temps forts de cette journée de conférences !
Fabien Potencier avait fait monter la pression depuis quelques jours sur Twitter : il ferait une annonce pendant la Keynote du Symfony Live Londres !
Fabien pris d’abord quelques minutes pour répondre aux fanboys de la communauté Laravel : non, cette annonce ne serait pas une alternative à Nova. En effet, Symfony fournit des générateurs d’admin depuis 2005 (date de sortie de sa toute première version), et dispose déjà d’une admin jolie et puissante, sous forme de Progressive Web App : API Platform Admin (grand moment de fierté, ce logiciel ayant été créé par des coopérateurs de Les-Tilleuls.coop). Fabien rappela également que - contrairement à Nova - API Platform Admin est un logiciel libre et gratuit !
Il fit ensuite le constat que Swiftmailer, la bibliothèque dédiée à l’envoi d’emails qu’il maintient depuis 2009, devient de plus en plus compliquée à maintenir. Son code ne suit pas les standards de développement de Symfony et plus personne ne plonge vraiment encore dans son code... Fabien a donc travaillé sur un successeur moderne à Swift Mailer 6 : Symfony Mailer.
Crowded room for @fabpot’s keynote at #Symfony_Live London 2018! pic.twitter.com/Ytjrf3RfDn
— Symfony Live (@symfony_live) 28 septembre 2018
Symfony Mailer reprend les fondamentaux qui ont fait de SwiftMailer une référence, mais le code a été entièrement repensé afin de le standardiser, de le simplifier, de le rendre plus maintenable et plus flexible. De plus, il ajoute tout un tas de nouvelles fonctionnalités afin de tirer parti des plateformes d’envoi modernes tels que Postmark ou Mail Gun. En voici quelques unes parmi les principales :
- Support multi transport (Gmail, Mail Gun, DSN, SMTP - et surtout la possibilité d’utiliser des API telles que postmark)
- Ajout d’une syntaxe pour définir des transports en fail over et/ou en load balancing.
- Intégration soignée de Twig pour le templating des mails
- Gestion des styles inline via Encore
- Besoin d’asynchronisme ? Le bundle permet de s’intègre nativement avec le composant Messenger de Samuel Rozé !
Dernier point abordé lors de cette keynote : la gestion des clics, des bounces et autres statistiques est un besoin indispensable pour tout projet moderne.
Depuis un SMTP, c’est complexe, mais l’arrivée de web hooks nous simplifie la tâche. Surprise : ils sont nativement supportés par la nouvelle bibliothèque ! Voilà une annonce alléchante avec laquelle il faudra être patient avant de pouvoir commencer à jouer avec :)
Tobias Nyholm nous a ensuite expliqué comment améliorer les performance d’une application au travers de plusieurs étapes :
Now on stage in track B, @TobiasNyholm is speaking about « #Symfony without the framework bundle »at #Symfony_Live London pic.twitter.com/FJ1Kdl1JZQ
— Symfony Live (@symfony_live) 28 septembre 2018
La première (et la moins chère) : acheter un plus gros serveur, puis ajouter du cache, un peu de cache, encore un peu de cache puis, enfin, exécuter moins de code. Symfony a drastiquement diminué ce nombre grâce au composant Flex, mais ce n’est pas encore suffisant. Pour une application plus performante, il faut limiter votre code au strict nécessaire et retirer tout ce dont vous n’avez pas besoin.
Peut-être que vous n’avez besoin que du router ? Ou bien que du cache ? Le minimum pourrait être alors le composant HttpFoundation avec le composant cache. Un peu plus de complexité ? Ajoutons alors l’injection de dépendance, le microkernel Trait.
Bref, l’idée est la suivante : n’utilisez que le strict minimum dont vous avez besoin. Contentez vous du nécessaire. Est-ce vraiment utile ? Preuve à l’appui, avec une application répondant en moins de 3ms, et un public médusé.
Notre coopérateur Kévin Dunglas a ensuite présenté le composant Panther, qui a atteint les 1000 étoiles sur Github lors de cette journée de conférences. Nous vous avons déjà présenté à plusieurs reprises ce composant sur le blog, nous vous invitons à vous y référer si vous voulez savoir en quoi il consiste. Kévin a d’abord fait l’état des lieux des différents composants permettant de tester son application Symfony et a insisté sur la nécessité de réaliser des “pyramides de tests” :
Panther se place tout en haut de cette pyramide avec les tests end to end. Tester son application avec Panther est une nécessité si elle contient du JavaScript, mais ce n’est pas suffisant : il faut tester les applications à chacun des niveaux de la pyramide : unitaire, fonctionnel et end-to-end (sans oublier, bien entendu, la recette manuelle).
Après avoir présenté les différentes fonctionnalités de Panther et quelques nouveautés, Kévin a également annoncé la sortie de nouveaux “helpers” destinés à simplifier drastiquement la création de tests E2E s’appuyant sur la base de données et sur des fixtures. Ces nouveaux helpers s’ont d’or et déjà disponibles : https://github.com/hautelook/AliceBundle#database-testing
Découvrez ses slides :
[#Symfony_Live slides] Today, Panther reached 1,000 stars on GitHub!
— Kévin Dunglas (@dunglas) 28 septembre 2018
To celebrate, I unveiled a set of new features during my talk, including some brand new database testing helpers inspired from #Laravel: https://t.co/JyjEUbGnRo #Symfony #testing
Andre Rømke nous montre l’utilisation d’une récente nouveauté de Varnish: Xkey, à travers une application Symfony.
At #Symfony_Live London @andrerom is now speaking in track B about « Take your Http caching to the next level with xkey & Fastly » pic.twitter.com/hLlinOA2bv
— Symfony Live (@symfony_live) 28 septembre 2018
En quelques mots, Xkey amène des surrogate-key disponibles à partir de Varnish 4.1 à travers un module. Ce module apporte un système d’invalidation de cache grâce à des tags, et permet surtout d’invalider le cache pour plusieurs tags en simultané. Autre feature importante, la capacité de réaliser des softpurge pour un item donné. En bref, Xkey est un must-have pour toute application nécessitant une gestion fine du cache !
Neal Brooks nous a démontré qu’il est possible d’exécuter les frameworks Symfony et API Platform sur AWS Lambda grâce à la bibliothèque Bref :
Looking forward to @nealio82 talk on Running #Symfony on #AWS Lambda #Symfony_Live pic.twitter.com/GNNnODqoBB
— Edd Mann (@edd_mann) 28 septembre 2018
Il y a quelques subtilités de configuration ou de performance à connaître, mais tout a été couvert ! Ce talk était très complet, ce ne serait pas lui faire honneur que de le résumer en 3 lignes, allez voir ses slides !
Now on stage in track A at #Symfony_Live London @michaelcullumuk speaking about « Building first-class REST APIs with #Symfony » pic.twitter.com/ayi9Px0uaQ
— Symfony Live (@symfony_live) 28 septembre 2018
Vous souhaitez créer une API REST et savoir quelles sont les bonnes pratiques ? Michael Cullum a la réponse. Il revient d’abord sur ce qu’est le REpresentational State Transfer et reprend en détails les différents principes fondamentaux derrière cet acronyme. À travers ses slides, vous serez en mesure de construire une API fiable et respectueuse de ce qu’est le REST et si vous souhaitez gagner du temps, utilisez API Platform (tout est déjà couvert, et bien plus encore !).
#Symfony_Live you are going to develop a REST API, but this acronym is still obscure? @michaelcullumuk is enlightening things for you :) all the basics are covered for you to create a proper one in his slides. You know what? All this is out of the box in @ApiPlatform
— Grégoire Hébert (@gheb_dev) 28 septembre 2018
Samuel Rozé nous a parlé du composant Messenger de Symfony, qu’il avait déjà présenté devant plus de 800 personnes au Symfony Live Paris ! Nous vous invitons à consulter à nouveau notre compte rendu de cette conférence afin de découvrir ce composant.
At #Symfony_Live London, @samuelroze is now speaking in track B about « #Symfony Messenger: Messages, Queues, Workers and more » pic.twitter.com/fBenab1Gwa
— Symfony Live (@symfony_live) 28 septembre 2018
Encore une fois, cet événement signé Sensiolabs était une vraie réussite. Bravo à toute l'équipe pour cette nouvelle édition ! De notre côté, nous vous donnons rendez-vous prochainement à Lisbonne pour la Symfony Con !