Ce que nous retenons du Forum PHP 2015

Ce que nous retenons du Forum PHP 2015

En début de semaine, une grande partie des JoliCodeurs a pu assister au très attendu Forum PHP qui se tenait cette année encore au Beffroi de Montrouge. Un forum assez particulier puisqu’on y célébrait les 20 ans de PHP ainsi que les 15 ans de l’AFUP, mais également la release imminente de PHP 7. 3 tracks de conférences étaient proposées cette année dont une exclusivement dédiée à PHP 7.

Deux conférences ont été présentées à cette occasion par des membres de l’équipe : « Mets du Value Object dans ton modèle » par Damien Alexandre et « Libérez-vous de votre client HTTP avec PSR7 et HTTPlug » par Joël Wurtz, sans oublier un lightning talk de Benjamin Clay sur les gifs animés. Voici nos retours sur cet événement.

La track PHP 7

Une dizaine de conférences étaient dédiées à PHP 7. Nous avons notamment pu (re)découvrir l’histoire de PHP et l’évolution du langage depuis sa version 3 dans la conférence de Zeev Suraski. Des conférences plus ciblées ont permis de mieux comprendre les changements internes apportés par cette nouvelle version : « PHP 7 – What changed internally » par Nikita Popov, ou de s’immerger dans les bases du langage et son fonctionnement : « PHP Data Structures (and the impact of PHP 7 on them) » par Patrick Allaert ou encore « Zoom sur les objets PHP » par Julien Pauli.

Si l’on devait retenir une chose des changements apportés par cette nouvelle version, ce serait sans conteste une forte amélioration des performances, grâce au nouveau moteur de PHP, développé sous le nom de code PHPNG (pour New Generation). Plusieurs benchmarks ont été présentés lors de différentes conférences qui annoncent un gain de performance de 25% à 75% selon les projets concernés. La rapidité du langage est visiblement accrue, on constate ainsi par exemple une baisse de 70% du nombre d’opérations CPU nécessaires sur la page d’accueil de Wordpress. De nouvelles features sont également introduites par le langage, dont l’opérateur Spaceship (<=>) ou encore le typage des paramètres scalaires ou des valeurs de retour des fonctions. La sortie officielle est prévue pour le 3 décembre !

Les autres conférences

La majorité des conférences avaient lieu hors de la track PHP 7. Les sujets en étaient très variés et même s’il est difficile de toutes les résumer, certaines d’entre elles nous ont paru particulièrement intéressantes.

Les flux : méconnus et sous-utilisés

Pascal Martin nous a présenté lors de cette conférence le mécanisme de flux de PHP. Bien que partie intégrante du langage depuis une dizaine d’années, les flux sont rarement exploités à leur pleine puissance par les développeurs. Leurs utilisations sont pourtant multiples : requêtes HTTP, manipulation de fichiers, compression… A l’aide de seulement quelques lignes de code en PHP natif, il est ainsi possible de reproduire le comportement de curl, de scp, voire même de développer un serveur de chat. L’utilisation de flux permet également d’obtenir un code plus souple, plus adaptable, puisqu’il devient possible de réutiliser le même code peu importe la provenance du flux. Une conférence intéressante qui met l’accent sur un mécanisme ancien mais toujours performant, bien que nous restions quelques peu sur notre faim, notamment sur l’aspect gestion d’erreurs.

Mets du Value Object dans ton modèle

Damien a exposé le concept de Value Object, objet immutable dont l’identité est définie uniquement par le contenu. Outre les limitations de PHP à son sujet, c’est autour de la persistance dans Doctrine que la conférence s’est orientée.

En effet il existe deux moyens simples de persister des VO avec Doctrine : le type object et les @Embedded. Or, les deux ont leurs défauts, leurs limitations, avec lesquelles vous devrez jongler pour vous en sortir.

La porte est encore grande ouverte avec beaucoup de discussions autour du stockage de ces VO en JSON, avec des Custom Hydrator, et le support de JSON dans MySQL 5.7.

Libérez-vous de votre client HTTP avec PSR7 et Httplug

À la dernière minute, notre collègue Joël Wurtz a accepté de remplacer un conférencier et a donc pu présenter, avant sa sortie, un projet sur lequel il travaille : HTTPlug. Cette librairie permet de créer des clients HTTP intéropérables et compatibles PSR7. HTTPlug se veut ainsi une interface simple permettant d’écrire ses requêtes et réponses HTTP sans se soucier de l’implémentation utilisée.

Anthony dessine

Auchan e-commerce France : Retour d’expérience sur la migration du back-office

Alexandre Salomé présentait dans cette conférence un retour d’expérience sur la migration d’un monstrueux back-office monolithique vers une myriade de petites applications dédiées à chaque domaine (fournisseurs, commandes, stocks, entrepôts…). À cette occasion, les 5 équipes de développement ont revu leurs méthodes de travail et ont intégré les méthodes Agile. Elles se sont également penchées sur des technologies qu’elles maîtrisent de bout en bout comme Docker ou Behat, afin d’éradiquer les 2 jours de mise en place d’un environnement de développement et les 25 à 30 jours/homme de tests manuels nécessaires avant chaque release. Le projet est toujours en cours, mais le travail effectué et présenté ici par Alexandre prouve, encore une fois, que même les applications les plus complexes et anciennes peuvent être modernisées.

Taylorisme de la qualité logicielle

Jean-François Lépine et Maymar sont revenus sur les démarches mises en oeuvre pour améliorer la qualité (notamment) chez Radio France. La conférence était intéressante et pleine d’humanité. Jean-François nous a notamment rappelé que, même s’il semblait intéressant de vouloir tout automatiser, cela ne devait pas se faire à n’importe quel prix. Il faut être pragmatique et commencer par le plus risqué, le plus long puis le plus rébarbatif. De plus, il a pu s’apercevoir que la mise en place d’une démarche qualité, plus qu’à la volonté des équipes ou du budget accordé, était liée à la présence de leaders.

Performance Testing for Modern Apps

Dustin Whittle nous a présenté plein d’outils (principalement Open Source) permettant d’effectuer des tests de charge ou d’évaluer la performance côté front-end. Des outils connus de tous (comme ab, siege, …) mais d’autres qui méritent notre attention comme Bees with machine guns qui permet de démarrer un ensemble de serveurs EC2 qui vont être utilisés pour exécuter les tests de charge. Si vous devez adresser cette problématique et que vous n’y connaissez pas grand chose, cette présentation est un bon point d’entrée. Et comme vous le savez tous, la performance est une fonctionnalité de votre application (au même titre que les autres fonctionnalités métiers).

Soyez spécifiques ? Un business clair et du code limpide avec RULERZ

Kévin Gomez nous a présenté RulerZ, sa librairie permettant d’exprimer des règles métier de manière simple mais surtout réutilisable avec un langage métier. Au coeur de son projet se trouve le pattern Specification. On peut ainsi imaginer gérer facilement avec du Domain Specific Language (ou DSL pour les intimes) des systèmes de coupon, des moteurs de recherche, etc. La feature qui nous a le plus impressionné ? La possibilité de passer à RulerZ un QueryBuilder de Doctrine. Fini de dupliquer la logique métier entre le code PHP et les requêtes au SGBD (supporte également Pomm et Elasticsearch). On a hâte de pouvoir le tester sur nos projets.

Le mot de la fin

On le dit tous les ans, mais le Forum PHP est un de nos événements de référence. Porté par une équipe de bénévoles, il a réussi cette année à réunir plus de 600 développeurs, dont la core team internationale de PHP.

Respect inPHPini, coeur avec les doigts <3, et à l’année prochaine.

NB : Une vidéo contributive célébrant les 20 ans de PHP a également été réalisée pour l’occasion et présentée durant la keynote d’ouverture :

blog comments powered by Disqus