Retour sur le Symfony Live London 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 ! 

Symfony Live London

Keynote de Fabien Potencier

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.

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 :)

Symfony without the framework bundle

Tobias Nyholm nous a ensuite expliqué comment améliorer les performance d’une application au travers de plusieurs étapes : 

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

Panther: test your Symfony apps with real web browsers

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” :

slide pyramid

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 :

Take your Http caching to the next level with xkey & Fastly

Andre Rømke nous montre l’utilisation d’une récente nouveauté de Varnish: Xkey, à travers une application Symfony.

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 !

Running Symfony on AWS Lambda

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 :


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 !

Building first-class REST APIs with Symfony

 

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 Messenger: Messages, Queues, Workers and more

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.  

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 !