7min.

Forum PHP 2017 : un très bon cru !

Nous étions une nouvelle fois présents au Forum PHP pour cette édition 2017 située, cette année, au Paris Marriott Rive Gauche Hotel. Des statistiques toujours vers le haut avec plus de 650 visiteurs, 33 conférences et 3 ateliers.

ForumPHP 2017

Section intitulée cocktail-temps-reel-pour-l-olympiaCocktail temps-réel pour l’Olympia

Par Amélie Duvernet.

Une conférence à propos d’un outil de compostage de billets créé par Digitick pour la mythique salle de l’Olympia. Nous avons pu avoir un aperçu de l’architecture du projet : des APIs, du Redis, du nodejs couplé à Socket.io. Nous avons ensuite eu une démo vidéo mettant en avant le côté temps-réel. Une conférence intéressante si vous n’avez jamais fait de temps-réel, mais pas assez poussée si vous avez déjà touché à Socket.io.

Slides : Cocktail temps-réel pour l’Olympia

Section intitulée l-ab-testing-chez-m6-webL’AB Testing chez M6 Web

Par Nastasia Saby et Fabien de Saint Pern.

Nastasia et Fabien nous ont présentés les procédures d’AB Testing utilisées sur les différents sites du groupe M6. L’AB Testing sert principalement à tester une modification sur une partie du site pour s’assurer que celle-ci apportera une meilleure satisfaction aux utilisateurs. Cela peut servir à l’amélioration de l’UX, des fonctionnalités, mais aussi à la mesure du taux d’abandon au chargement…

Après avoir eu quelques bonnes pratiques concernant la mise en place de tests (par exemple, les tests AAB plutôt que AB) et la lecture des résultats, nous restons un peu sur notre faim pour le côté implémentation technique.

Slides : L’AB Testing chez M6 Web

Section intitulée software-management-lessons-from-the-1960sSoftware Management Lessons from the 1960s

Par Larry Garfield.

Une conférence déjà donnée plusieurs fois par Larry dans laquelle il parcourt le livre The Mythical Man-Month paru en 1975 et ajoute le parallèle avec notre époque. On retrouve de nombreuses problématiques sur la planification d’un projet, notamment la loi de Brooks « Ajouter des personnes à un projet en retard accroît son retard ». En effet, le fait que la communication humaine soit complexe et la plupart des tâches non parallélisables impliquent des coûts.

Ces problématiques sont-elles toujours d’actualité ? Oui, et Larry nous le prouve à grande échelle avec le projet open source Drupal auquel il a activement contribué.

Slides : Software Management Lessons from the 1960s

Section intitulée le-streaming-d-api-pourquoi-commentLe Streaming d’API : pourquoi ? comment ?

Par Audrey Neveu.

Audrey nous présente les intérêts d’utiliser du temps réel pour nos applicatifs, notamment la peur de rater un événement.

De nombreuses solutions sont disponibles et présentées dans sa conférence :

  • Polling
  • Webhook
  • Websocket VS Server sent events

Et enfin la présentation du service StreamData.io pour rendre une API existante quasiment temps réel très facilement.

Section intitulée les-hexagones-de-la-ruche-qui-dit-ouiLes hexagones de la ruche qui dit oui !

Par Benoît Merlet.

L’application Symfony de La ruche qui dit oui est un monolithe et Benoît nous fait passer par les différentes étapes de réflexion de son équipe pour améliorer l’existant. Cela commence par une tentative d’implémentation de microservices avec une classe de génération d’images, cela pose plusieurs problématiques en terme de maintenance et liaison avec l’applicatif principal. Au final, ils se rendent compte que cette architecture nécessite une équipe dédiée à sa mise en place et n’est pas une solution viable pour son équipe.

Une autre refonte est tentée avec l’architecture hexagonale, le principe est d’isoler la logique métier de l’implémentation technique. Ce qui colle parfaitement avec une approche BDD (Business Driven Development). Nous avons particulièrement apprécié l’avant / après de la structure de fichier du projet.

Section intitulée atelier-ddd-domain-driven-developmentAtelier DDD (Domain Driven Development)

Par Alexandre Balmes.

Alexandre nous proposait cette année un atelier pour aborder un sujet qui lui tient à cœur depuis quelques années, le Domain Driven Development.

Le principe général de cette méthode est de découpler l’implémentation technique de la logique métier. On retrouve des similitudes avec le BDD dont nous parlions plus haut dans cet article.

L’atelier a débuté par une rapide présentation des grands concepts du DDD :

  • Application est un dossier du projet qui contient les Form, par exemple.
  • Domain est un autre dossier qui contient la logique métier, à savoir des services, des events, des interfaces de Repositories, des entités (rien à voir avec Doctrine), et des ValueObjects.
  • Infrastructure contient tout ce qui est lié à la persistance, à savoir l’implémentation des Repositories du Domain, des Managers, des Bridges, un Mailer. Globalement, tout ce qui fait appel à du tiers (base de données, api externes, envoi de mail, sms…)
  • User Interface contient les Controllers de notre application et ses templates (ou pas selon les projets).
  • Les Bounded Context représentent un concept qui, pour nous, se rapprochent fortement des bundles fonctionnels que l’on avait l’habitude de créer dans des applications Symfony2. Par exemple, notre application contient une fonctionnalité de Blog, nous allons donc créer un Bounded Context Blog (un dossier) dans lequel nous retrouverons la structure décrite ci-dessus, pour isoler cette fonctionnalité, et la rendre utilisable dans d’autres projets.

Alexandre nous a donné quelques conseils qui entrent également dans la logique DDD, comme maintenir un glossaire pour faciliter la communication entre l’équipe technique et produit. L’idéal étant que les implémentations techniques des fonctionnalités soient nommées de la même manière par les 2 équipes.

Cet atelier nous a permis de découvrir cette méthode de conception, de laquelle nous retirerons sûrement certains concepts pour améliorer de futurs projets qui se prêteraient à la mise en place du DDD.

Section intitulée graphql-l-avenir-du-restGraphQL, l’avenir du REST ?

Par François Zaninotto.

Sur cette conférence rythmée et humoristique, François nous fait passer de l’ancien paradigme REST vers la lumière de GraphQL. On y retrouve les différents problèmes que l’on rencontre avec une API classique, par exemple les performances de plusieurs appels HTTP sur mobile ou encore les pirouettes que l’on peut être amené à faire pour optimiser nos requêtes (embed, query params…).

GraphQL est présenté comme une technologie innovante mais qui force les développeurs à apprendre un nouveau paradigme de zéro avec de nouvelles problématiques résolues depuis longtemps avec REST, notamment le cache et la sécurité.

On peut aussi noter que le support est présent dans de nombreux langages, notamment en PHP avec le fameux API Platform.

Slides : GraphQL, l’avenir du REST ?

Section intitulée les-process-qualite-le-cas-de-symfonyLes process qualité – Le cas de Symfony

Par Nicolas Grekas.

Membre de la core team de Symfony, Nicolas nous a présenté les différents outils et méthodologies employés au sein du framework pour faciliter la maintenance et conserver la qualité du projet open source. Parmi tous les points abordés, nous apprécions notamment la gestion des Backward Compatibility breaks pour faciliter au maximum la montée en version de nos applications : aucun BC break introduit dans une version mineure ; et si une évolution introduisant un BC break est nécessaire, une couche de compatibilité doit être développée au coeur de Symfony pour que l’ancienne version fonctionne toujours dans nos applications actuelles et des notices seront levées pour vous avertir que vous utilisez du code déprécié qui sera supprimé dans la prochaine version majeure.

Le système de notice est basé sur la fonction trigger_error :

@trigger_error('Message expliquant la dépréciation', E_USER_DEPRECATED);

Applicable à tous les packages PHP, ce système de notification sera peut-être proposé en tant que recommandation au PHP FIG.

Le projet Symfony a également mis en place quelques astuces pour faciliter les tests unitaires avec PHPUnit et accélérer le temps de build sur les plateformes d’Intégration Continue. On notera le package symfony/phpunit-bridge que tout le monde pourra utiliser pour bénéficier de quelques améliorations lors de l’utilisation de PHPUnit. Ce bridge permet également de collecter toutes les dépréciations levées lors de vos tests et les affiche de manière lisible à la fin.

Section intitulée le-slideshow-karaokeLe Slideshow karaoke

ForumPHP : Le Slideshow karaoke

Cette année encore, le Forum PHP s’est terminé sur cette « conférence » un peu spéciale à base d’improvisation. Les cobayes ont plutôt bien réussi cet exercice pas évident qui consistait à improviser un mini talk en se basant sur quelques slides qu’ils découvraient en même temps que les spectateurs. Ce slideshow karaoké a été l’occasion de terminer 2 jours de conférences sur une note légère et pleine d’humour.

Section intitulée encore-une-superbe-editionEncore une superbe édition

Ceci est un tour rapide de ce que nous avons pu voir. Évidemment, d’autres conférences étaient très intéressantes :

Même s’il y a toujours des râleurs, ce fut encore une fois une superbe édition. Merci à l’AFUP pour l’organisation aux petits oignons et aux conférenciers. N’hésitez pas à aller voir les photos sur le groupe flickr.

Prochaine conférence PHP à ne pas rater à Montpellier avec le PHP Tour 2018 !


Cet article porte sur la conférence Forum PHP 2017.

Forum PHP 2017

Commentaires et discussions

Nos articles sur le même sujet

Nos formations sur ce sujet

Notre expertise est aussi disponible sous forme de formations professionnelles !

Voir toutes nos formations

Ces clients ont profité de notre expertise