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.
Section intitulée la-track-php-7La 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 !
Section intitulée les-autres-conferencesLes 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.
Section intitulée les-flux-meconnus-et-sous-utilisesLes 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.
Section intitulée mets-du-value-object-dans-ton-modeleMets 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.
Section intitulée liberez-vous-de-votre-client-http-avec-psr7-et-httplugLibé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.
Section intitulée auchan-e-commerce-france-retour-d-experience-sur-la-migration-du-back-officeAuchan 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.
Section intitulée taylorisme-de-la-qualite-logicielleTaylorisme 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.
Section intitulée performance-testing-for-modern-appsPerformance 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).
Section intitulée soyez-specifiques-un-business-clair-et-du-code-limpide-avec-rulerzSoyez 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.
Section intitulée le-mot-de-la-finLe 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 :
Cet article porte sur la conférence Forum PHP 2015.
Commentaires et discussions
Ce que nous retenons du Forum PHP 2019
À l’occasion de sa 13e édition, l’équipe de JoliCode s’est à nouveau rendue au Forum PHP pour deux jours de partage, de conférences, de veille technique et de papotage ! Comme chaque année, l’équipe de l’AFUP a fait un travail de sélection et d’organisation qui force l’admiration.…
Lire la suite de l’article Ce que nous retenons du Forum PHP 2019
Nos articles sur le même sujet
Ces clients ont profité de notre expertise
Nous avons développé une plateforme de site génériques autour de l’API Phraseanet. À l’aide de Silex de composants Symfony2, nous avons accompagné Alchemy dans la réalisation d’un site déclinable pour leurs clients. Le produit est intégralement configurable et supporte de nombreux systèmes d’authentification (Ldap, OAuth2, Doctrine ou anonyme).
JoliCode continue d’accompagner les équipes web d’Afflelou en assurant la maintenance des différentes applications constituant la plateforme Web B2C. Nous mettons en place des bonnes pratiques avec PHPStan et Rector, procédons à la montée de version de PHP et Symfony, optimisons le code grâce au profiling, et collaborons avec l’infogéreur pour les…
Groupama confie à JoliCode la maintenance et les évolutions de son outil de souscription d’épargne salariale. Pierre angulaire de l’acquisition de nouveau client, l’outil permet aux apporteurs de saisir toutes les données de l’entreprise, faire signer numériquement le contrat au client et de conclure la souscription. Le tunnel est accompagné d’outil…