Notre retour sur le Symfony Live 2016

Cette année encore, nous étions au Symfony Live qui s’est déroulé dans les belles salles de la Cité Universitaire, les 7 et 8 avril dernier. Nous allons évoquer les conférences qui nous ont le plus marquées.

La conférence d’ouverture est une nouvelle fois tenue par Fabien Potencier, sur l’utilisation d’un dépôt unique qui comprend tous les projets au sein d’une entité, en comparaison avec l’utilisation classique de plusieurs dépôts permettant de bien distinguer les différents projets. Cette organisation est applicable pour l’open source, une start-up, ou une entreprise titanesque comme Facebook ou Google, mais pas vraiment dans le cadre d’une agence Web.

Fabien Potencier Monolith Repositories

Fabien Potencier nous a expliqué ainsi comment fonctionne l’éco-système Symfony où, dès qu’une PR est fusionnée dans le dépôt Symfony, les modifications sont répercutées en temps réel sur tous les composants et les bundles, dont les dépôts sont en lecture seule.

S’en suit la présentation d’un composant récent Security Guard qui facilite la compréhension de la sécurité en la centralisant dans une seule classe appelée par le framework. Intéressant, mais déjà vu quelques mois plus tôt et pas transcendant.

R2D2 to BB8

Vincent Chalamon (coop Les Tilleuls) et Guillaume Voisin (La Fourchette) nous ont présenté leur retour d’expérience lors de la refonte progressive du site La Fourchette de Symfony 2.0 vers Symfony 3. Ils ont ainsi expliqué comment ils ont procédé pour transférer petit à petit les fonctionnalités de l’ancien projet vers le nouveau, et comment s’est déroulé la synchronisation des données des deux projets à l’aide d’un LegacyBundle contenant des Loaders, Transformers et de la correspondance des données entre les deux applications.

PHP Meminfo ou la chasse au memory leak

Conférence surprenante et concrète sur les fuites de mémoire, Benoit Jacquemont a commencé par nous expliquer le fonctionnement des garbage collectors en PHP, nous y avons vu notamment les fuites de type référence circulaire et comment PHP 5.3+ les traite. Ensuite, il nous a montré des exemples de fuites les plus courantes comme le mapping Doctrine (un produit est lié à une catégorie et inversement) et un moyen de les débugguer à l’aide de son extension php-meminfo.

Benoit Jacquemont Memory leaks

Benoit nous a aussi donné quelques conseils afin de détecter et éviter les fuites de mémoire.

Benoit Jacquemont Memory leaks

Symfony ça rame, ou la performance au quotidien

Un site mal optimisé peut avoir des conséquences énormes sur une entreprise, imaginez un site qui est indisponible pendant la période des soldes… C’est là l’objet de la conférence de Xavier Leune. Il nous évoque une stack impressionnante : PHP, PGSQL, MariaDB, Sphinx, Varnish, Akamai, memcache, Redis. Lorsqu’ils ont voulu refondre leur framework interne, basée sur la performance, mais vieillissant, ils ont produit des benchmarks pour faire le choix du nouveau framework.

Au final plus que le choix du framework utilisé (Laravel/Symfony), le point de blocage détecté pour les performances est surtout l’ORM. Ils se sont alors fixé comme objectif de supporter 100000 requêtes / seconde. Il nous évoqua le choix de Ting sans pour autant développer davantage, ce qui était dommage, mais donc d’après eux, les résultats le donne beaucoup plus performant que Doctrine. Enfin, il nous parle des ESI pour charger des parties de pages statiques indépendamment du cache Symfony qui sont souvent oubliées.


La deuxième journée commence par l’excellente keynote de Mathieu Nebra, créateur du Site du zéro, désormais OpenClassrooms. En tant qu’entrepreneur, il nous évoque avec du recul les erreurs qu’il a fait lors de la croissance de son entreprise (bureau des patrons séparé des employés, donner des horaires de travail précis, séparer les équipes de travail) ainsi que les théories X et Y de Douglas McGregor représentées par la comparaison suivante :

Mathieu Nebra Douglas McGregor

Nous ne sommes plus à l’usine, en tout cas, dans nos métiers. C’est l’environnement qui détermine la façon dont les employés agissent. Mathieu mise ainsi sur la confiance qu’il a en ses employés et leur capacité à travailler en équipe.

Nous noterons par exemple que tous les employés ont accès aux métriques de l’entreprise, que les rétrospectives sont faites pour éviter les conflits en traitant les petites tensions, et qu’il n’hésite pas à donner le pouvoir de décider à une personne sur un sujet. Il termine en nous donnant 3 piliers à retenir pour mettre la confiance en pratique :

  • Transparence de l’information ;
  • Traitement des tensions ;
  • Diffusion des responsabilités.

Suivent alors 2 conférences intéressantes sur la sécurité : quelques rappels sur les failles XSS, détournement de clic, ou des problématiques parfois oubliées :

  • spoofing ;
  • spam ;
  • mass click resend.

Nous y verrons l’utilisation de headers HTTP pour une protection XSS mais aussi comment spécifier la politique de sécurité de l’origine du contenu (Content Security Policy).

Slides et vidéos

Cette année encore toutes les conférences du Symfony Live ont été filmées et seront disponibles sur youtube. Les commentaires et slides des conférences sont sur joind.in.

Mot de la fin

Parmi les LT, nous avons retenu la présentation du bundle acmephp, implémentation du protocole ACME défini par Let’s Encrypt, sans doute un futur must have pour implémenter le https. Ainsi que celui d’Alexandre Salomé, très fun, sur la quantification.

Merci au staff Sensio pour l’organisation de ces deux journées, aux conférenciers pour leur temps et leur partage de connaissance, et à Webnet pour la super GoPro gagnée par Mathieu S.

Mathieu gagne la Go Pro

Nous regrettons cependant, comme les années précédentes, la mise en avant des conférences sponsors pas toutes forcément du niveau d’un événement comme celui-ci.

Nos formations sur le sujet

  • Symfony

    Formez-vous à Symfony, l’un des frameworks web PHP les plus connus au monde

  • Symfony avancée

    Décou­vrez les fonc­tion­na­li­tés et concepts avan­cés de Symfo­ny

blog comments powered by Disqus