Cette année, nous avons eu l’occasion d’assister à l’édition 2019 du Symfony Live, une série de talks traitant de sujets assez variés touchant, sans surprise, au framework PHP Symfony, mais également à tout l’écosystème web avec lequel chaque développeur utilisant le framework doit composer au quotidien. Cet évènement s’est déroulé les 28 et 29 mars derniers à Paris, plus précisément à la cité Internationale Universitaire.

Keynote d’ouverture de notre cher FabPot

On ne change pas les bonnes habitudes ! Comme chaque année, l’ouverture des hostilités est présidée par Fabien Potencier, cofondateur de SensioLabs, société initialement à l’origine du framework Symfony. Si vous vous tenez au courant de l’actualité autour du framework et de son écosystème de manière plus globale, vous n’êtes pas sans sans savoir que la version 4.3 devant être releasé en mai 2019 apporte son nouveau lot de composants. Fabien a donc décidé de nous faire une présentation rapide de ceux-ci : HttpClient et MIME (un composant visant à simplifier la création d’e-mails).

La majeure partie de ce talk se concentre sur le composant MIME, nous avons pu faire le tour du composant et explorer ses différentes facettes. Parmi celles-ci, les différentes méthodes d’implémentations, le parallèle avec SwiftMailer (composant majoritairement utilisé pour la gestion d’e-mails dans le framework), son intégration avec Twig, le gestionnaire de template, Inky pour la mise en forme ou encore Symfony Messenger pour l’envoi de mails en synchrone ou asynchrone. Nous avons également pu avoir un aperçu des différents providers supportés par le composant.

C’est aussi l’occasion d’assister à quelques « coups de gueule » de Fabien, notamment sur les différents standards d’implémentation autour de l’écosystème PHP (il à pu nous citer comme exemple PHP-FIG, qui pousse à la diversité tout en encourageant l’unification des différentes implémentations, un discours pas toujours cohérent qui a tendance à parfois diviser la communauté) ou encore sur le financement de l’open source à travers le service security.symfony.com, offrant des fonctionnalités gratuites, mais également payantes. Lors de l’annonce de la mise à disposition du service, les développeurs ont montré un vif intérêt pour celui-ci, mais sur la promesse de plus d’une centaine de souscriptions, seules treize personnes ont effectivement franchi le cap..;

Un peu de Frontend dans ce monde de back !

Depuis plusieurs années maintenant, nous pouvons assister à l’évolution de nos sites et de nos applications. Bien que l’évènement soit initialement axé autour de Symfony, il est impossible de ne pas remarquer que les technologies frontend se complexifient de plus en plus et prennent une part de plus en plus importante dans notre quotidien ! Symfony est d’ailleurs parfaitement calibré pour implémenter des technologies frontend modernes (nous vous renvoyons vers la documentation officielle traitant de la librairie Webpack Encore permettant d’intégrer webpack dans une application Symfony).

Nous avons donc pu écouter Titouan Galopin nous exposer le fonctionnement de ReactJS et Redux et nous présenter son installation dans un environnement Symfony.

François Zanimotto nous a fait un exposé de ReactAdmin, sa mise en place et quelques tips permettant d’installer rapidement une interface d’administration en JavaScript (technologie d’ailleurs utilisée par API Platform). Showman comme nous le connaissons, François nous régale en trollant à tout va ! S’attaquant tantôt aux développeurs PHP, à Twig ou encore à quelques choix fait dans Symfony (notamment API Platform). Un talk qui pourrait « presque » redonner envie aux développeurs backend faisant du PHP de se remettre au JS !

Enfin, Mathieu Santostefano a lui, choisi de faire un focus sur HTML5, plus particulièrement sur la bonne intégration des images. Nous avons donc pu avoir une présentation de différents services permettant de gérer les images de manière responsive (Cloudinary ou encore le célèbre Thumbor), le cropping d’images ainsi que la balise <picture> et ses différents attributs.

API Platform – Créer des API n’a jamais été aussi simple !

Tout développeur ayant un jour utilisé le framework Symfony a forcément entendu parler d’API Platform, une librairie venant se greffer à Symfony permettant de créer des API très simplement en usant d’annotations sur ses entités. Cet outil suscite de plus en plus d’engouement au sein de la communauté PHP, tant dans sa simplicité d’implémentation que dans ses fonctionnalités qui ne cessent d’évoluer au fil des années !

Nous avons donc eu l’occasion d’assister à deux talks concernant ce projet. Le premier, animé par Grégoire Hébert, nous affirme que non ! API Platform n’est pas bon qu’à faire des POCs. Les différentes évolutions de ce projet en font aujourd’hui un outil solide pour construire des API robustes rapidement, laissant une grande liberté aux développeurs dans la personnalisation de celles-ci.

Kévin Dunglas, fondateur de la coopérative Les-Tilleuls.coop (société éditrice d’API Platform), enchaine ensuite pour nous présenter les nombreux outils gravitant autour de l’écosystème Symfony à travers le développement « live » d’un join.in. Cela nous permet d’avoir une très bonne vision de l’architecture à adopter pour une application web moderne (un backend mettant à disposition des API via API Platform et le MakerBundle de Symfony pour générer le code, un front Vue.js pour interagir avec celles-ci, Symfony Panther pour les tests et enfin Mercure pour jouer avec la partie temps réel).

N’oublions pas les OPS

Nous avons, pour le moment, traité des différents sujets backend et frontend. Mais les talks autour du devops n’ont pas manqué cette année !

Frédéric Bouchery nous a exposé le fonctionnement de RabbitMQ. Un talk très intéressant mettant en avant les bases de l’outil ainsi que quelques tips pour son utilisation avec le composant Symfony Messenger (composant devant avoir une grosse mise à jour dans la version 4.3 de Symfony, s’enrichissant considérablement).

Benoit Jacquemont nous présente HTTP/3, destiné à supplanter HTTP/2. Nous pouvons donc avoir un aperçu des différences et améliorations de la version 3 par rapport à la version 2. Les changements ne sont pas fondamentaux, en revanche, l’évolution vise à améliorer la latence en se passant de TCP et SSL au profit d’une unification des couches transport et chiffrement (notamment via l’utilisation de QUIC, initialement développé par Google il y a quelques années).

La data au cœur de tout

Damien Alexandre, qui n’est plus à présenter au sein de la communauté PHP, nous a parlé du moteur de recherche Elasticsearch. Il a pu faire un tour de l’outil en nous présentant ses différentes spécificités. Configuration (via YAML), bonnes (et mauvaises) pratiques pour la dénormalisation ainsi que quelques tips et recommandations pour exploiter au mieux le moteur de recherche.

Romaric Drigon s’est concentré sur Doctrine, l’ORM permettant d’interagir avec les données de nos bases. Celui-ci se penche sur le fonctionnement interne de l’outil et nous expose des fonctionnalités peu connues des développeurs. Tips sur l’architecture à adopter dans son code, évents et listeners, filtres, tracking policies, proxys, lazy-loading..; À la fin du talk, Doctrine n’avait plus de secret pour personne !

L’open Source, ou comment travailler ensemble pour devenir meilleurs

Jêrome Vieilledent traite le sujet avec une approche bien particulière, se penchant sur l’étique de l’open source et l’importance qu’il faut y accorder dans notre quotidien. Symfony étant au coeur de tout cela, les notions de respect, de partage de connaissance, ou encore de collaboration prennent tout leur sens. Nous sommes des développeurs, mais avant tout des êtres humains ! La où le monde du travail apparaît comme une usine géante dans laquelle chacun se retrouve dans l’obligation de se rendre, Jérôme n’y voit aucunement une fatalité, mais plus une occasion de mettre en avant des valeurs comme la bienveillance, l’inclusion, le partage, la confiance, que certains ont tendance à oublier.

Danielle Kayumbi Bonkoto, elle, nous fait un listing complet des meilleurs outils et bundle nous permettant d’implémenter rapidement nos besoins fonctionnels dans nos applications. Nous avons donc pu avoir un retour d’expérience complet et riche sur des outils (parfois méconnus) que nous nous devons d’utiliser pour améliorer la qualités des produits que les développeurs délivrent tout en gagnant du temps. Même si certains peuvent paraître obsolètes, fort est de constater qu’ils font tout de même partie des incontournables que nous avons tous, à un moment ou un autre de notre carrière, utilisé.

Enfin, Nicolas Grekas nous présente le très attendu composant HttpClient de Symfony (qui sortira avec la version 4.3 du framework). Cet outil vise à simplifier l’exploitation des différents appels HTTP que nous pouvons avoir. De plus, celui-ci sera complètement indépendant ! Il n’y à pas forcément besoin d’être au sein d’une application Symfony pour exploiter le client. Une implémentation simple, permettant d’être étendue, respectant le PSR-18 et permettant d’utiliser aussi bien fopen que curl. Nicolas est convaincu que ce client est tout aussi complet que le célèbre Guzzle ! Nous devons admettre avoir été assez bluffé par la présentation et sommes très impatient de pouvoir l’implémenter dans nos futurs projets !

Le mot de la fin

Pour les 10 ans des Symfony Live, nous avons été gâté ! Des sujets variés, des talks enrichissants, il me tarde déjà de voir ce que nous réserve la prochaine édition !
Seul bémol, une gestion de la nourriture un peu limite (service assez lent et mal calibré pour la quantité de personnes présentes) ainsi qu’un espace un peu restreint pour accueillir tout ce beau monde (Symfony Live, victime de son succès ?).

Certains speakers ont déjà mis à disposition les slides leur ayant servis de support, il faudra cependant attendre quelques mois avant de pouvoir avoir accès aux vidéos traitant des différents sujets.