Article rédigé par Aleksander, Développeur Back-end chez Dn’D

Le 24 mai 2024, le théâtre de la Comédie de Lille a accueilli l’AFUP Day, un événement phare pour les passionnés de PHP. Organisé par l’Association Française des Utilisateurs de PHP (AFUP), cet événement a rassemblé développeurs et experts de l’écosystème PHP autour de conférences enrichissantes.

Migration vers API Platform 3.x

API Platform est un framework PHP open-source conçu pour simplifier la création d’API RESTful et GraphQL. Il repose sur des composants Symfony et facilite l’intégration de fonctionnalités telles que la documentation, la pagination, la validation et l’authentification.

Principales évolutions de la version 3.x :

  • Performance améliorée : optimisations pour des réponses plus rapides et une meilleure gestion des ressources.
  • Support amélioré pour GraphQL : extension des capacités et de la flexibilité des requêtes.
  • Nouveaux filtres et dépréciation des anciens filtres : simplification de la gestion des filtres avec des options plus robustes.
  • Meilleure intégration Symfony : alignement avec les dernières versions de Symfony pour une meilleure compatibilité.
  • Sécurité renforcée : ajout de nouvelles fonctionnalités de sécurité et mise à jour des pratiques existantes.

Vincent Chalamon, de l’entreprise Les-Tilleuls.coop, a présenté la transition vers API Platform 3.x, mettant en avant les améliorations et les défis de la migration. Il a partagé des conseils pratiques pour gérer les cas particuliers et a détaillé les étapes de l’upgrade path proposé par API Platform. Chaque cas particulier est présenté avec des degrés de difficulté, entre les dépréciations, l’abandon des objets de transfert de données (DTO) ou la mise à jour des configurations, ce qui permet d’encourager la transition vers ces évolutions.

Qualité dans les Projets « Legacy »

Rachid Hammaoui, Leader Technique PHP / Symfony chez Accenture Interactive, a discuté de l’importance d’introduire des pratiques modernes de qualité de code dans les projets legacy. Il a partagé des stratégies pour intégrer les tests, l’analyse statique du code, et les revues de code de manière progressive et avec un minimum de perturbations :

➡️ Audit :

  • Évaluation initiale du code existant pour identifier les points faibles et les zones critiques.
  • Utilisation d’outils d’analyse statique et dynamique pour obtenir un aperçu détaillé des problèmes potentiels.

➡️ Conventions :

  • Établissement de standards de codage et de bonnes pratiques pour uniformiser le code.
  • Mise en place de guides de style et de conventions pour les nouvelles contributions.

➡️ Revues :

  • Mise en place de revues de code régulières pour s’assurer que les modifications respectent les conventions établies.
  • Participation collaborative pour partager des connaissances et des meilleures pratiques.

➡️ Tests :

  • Introduction de tests unitaires et fonctionnels pour garantir la stabilité du code.
  • Utilisation de tests automatisés pour une couverture plus large et des détections précoces de régressions.

➡️ Refactorisation :

  • Réorganisation et amélioration du code existant sans en changer le comportement externe.
  • Refactorisation progressive pour améliorer la maintenabilité et la lisibilité du code.

Ces étapes visent à améliorer la qualité du projet tout en minimisant les risques et en garantissant une transition en douceur vers un code plus propre et plus maintenable. Des pratiques similaires s’appliquent chez Dn’D lors des reprises de projets de nos clients.

Profiler son application PHP en toute gratuité

Valentin Silvestre, CEO d’HTMX, a exploré les solutions gratuites de profiling pour PHP, démontrant comment traquer les bogues et optimiser les performances sans frais.

L’intervention a présenté 3 outils essentiels pour le profiling et l’optimisation des applications PHP : Blackfire, Xdebug et Sentry. Chaque outil a été décrit en termes de fonctionnalités, d’utilisation et d’intégration, offrant aux développeurs des moyens puissants pour améliorer les performances et la stabilité de leurs applications.

➡️ Blackfire :

  • Description : Outil de profiling et d’optimisation de performance.
  • Fonctionnalités : Analyse de la consommation des ressources, repérage des goulots d’étranglement et propositions d’optimisation.
  • Utilisation : Accessible via une interface web et intégrable dans les CI/CD pipelines pour des tests automatisés.

➡️ Xdebug :

  • Description : Extension PHP pour le débogage et le profiling.
  • Fonctionnalités : Débogage pas à pas, traces de pile, profiling de la mémoire et du CPU.
  • Utilisation : Intégré dans les IDEs pour un débogage interactif et utilisation en ligne de commande pour des analyses détaillées.

➡️ Sentry :

  • Description : Outil de monitoring des erreurs et des performances.
  • Fonctionnalités : Suivi des erreurs en temps réel, traçage des performances, gestion des releases.
  • Utilisation : Intégration facile avec PHP pour capturer et analyser les erreurs en production.
  •  

Ces outils sont bien connus par les développeurs de Dn’D et souvent utilisés.

PHP: Particularly Horrible Programs

Gina Banyard, C Developer à la PHP Foundation, a proposé une présentation ludique sur les aspects peu recommandables, mais techniquement possibles du langage PHP.

Elle a commencé par présenter la “Fondation PHP” en parlant du travail des volontaires et salariés, puis a attaqué toutes les bizarreries possibles qu’ils sont obligés de tester et réfléchir à rendre plus cohérents sans avoir de régressions comme des comparaisons ou tris entre les différents types de données. Cela permet de se rendre compte que ce langage est en permanente évolution et n’a pas fini de répondre aux exigences de l’industrie.

Firefox release management

Passé déjà plusieurs fois à Lille pour nous présenter son métier, Pascal CHEVREL nous reparle de son poste de Release Manager chez Firefox depuis 2018. Il nous explique qu’il est responsable de la livraison des versions mineures de Firefox sur 4 systèmes d’exploitation, qui incluent les versions 32 et 64 bits. Ces versions sont livrées toutes les 4 semaines, via les magasins d’applications et en exécutables téléchargeables

👉 Retrouvez les détails dans notre article d’un Meetup AFUP en 2022.

J’ai testé API Platform V3, qu’est-ce que j’en pense en tant que développeuse C# ?

Laura Durieux, alias devgirl_ sur Twitch, se lance dans les talks et a partagé son expérience avec API Platform V3 en tant que développeuse C#. Elle a discuté des différences entre un développement d’API sur C# et API Platform, des avantages et inconvénients de cette nouvelle version, offrant une perspective précieuse sur la transition vers cette plateforme. 

Microservices, maxi supplice

Yann Jacquot et Alexis Stefanski, tous les deux Tech lead chez CircularX, ont partagé leur expérience sur la migration d’une architecture microservices vers un monolithe. La présentation a débuté par un retour d’expérience (REX) détaillant les défis rencontrés avec leur application, initialement composée de 7 puis 4 microservices. Les problèmes de couplage et de performance, avec des temps de réponse critiques dépassant 44 secondes, ont incité l’équipe à envisager une refonte complète de l’architecture.

Ils ont ensuite décrit la roadmap élaborée pour cette transformation. Une task force de 4 développeurs et opérateurs a été mise en place pour une période de 3 mois. Leur objectif était de minimiser les perturbations sur un projet en constante évolution, tout en intégrant la fusion des microservices dans la feuille de route globale. La phase préparatoire a été cruciale, impliquant l’instrumentation des services pour détecter les bugs et les variations de performance, ainsi que l’analyse de l’existant pour planifier des itérations régulières et moins risquées.

Enfin, l’exécution du plan a été abordée, illustrant comment l’équipe a utilisé des outils visuels pour synchroniser les différentes équipes et gérer les problèmes rencontrés. La présentation a conclu sur une note optimiste, soulignant qu’il est possible de résorber une dette technique importante et encourageant les participants à appliquer ces apprentissages à leurs propres projets.

Gitlab et Drupal

Lors de l’AFUP Day 2024, Ines Wallon, Drupal Practice Leader chez Almavia CX, a présenté un talk captivant sur l’intégration de GitLab avec Drupal pour une gestion de projet plus fluide et efficace. Elle a expliqué comment la migration de la communauté Drupal vers GitLab-CI a permis d’uniformiser et d’améliorer les workflows de développement.

Ines a mis en avant l’importance de standardiser la configuration CI à travers un référentiel commun, facilitant ainsi la collaboration et la maintenance des projets.

Elle a également discuté des outils et techniques pour intégrer ces pratiques dans les projets Drupal, démontrant les bénéfices tangibles en termes de qualité et de productivité.

Applications PHP conteneurisées : retour d’expériences et bonnes pratiques

Lors de l’AFUP Day 2024, Kévin Dunglas, CEO de Les-Tilleuls.coop, a captivé l’audience avec sa présentation sur les bonnes pratiques de la conteneurisation des applications PHP.

Il a d’abord expliqué les avantages des conteneurs, comme la simplification de l’onboarding, la versionnage de la configuration et l’utilisation uniforme à travers différents environnements.

Ensuite, Kévin a partagé des astuces pratiques, notamment l’utilisation d’images Debian pour de meilleures performances et l’optimisation des couches des conteneurs.

Enfin, il a présenté des outils comme Kubernetes et Skaffold, illustrant comment ces solutions peuvent améliorer le développement et la production des applications PHP conteneurisées.

Il a partagé un template pour les applications basées sur Symfony (Voir la documentation Symfony Deploying in Production) dont il parle dans son interview donné à l’équipe de l’AFUP.

Conclusion

L’AFUP Day 2024 a été une occasion unique de partager des connaissances et des expériences au sein de la communauté PHP. Les participants ont pu découvrir des innovations, des retours d’expérience et des conseils pratiques pour améliorer leurs projets.

Rendez-vous à la prochaine édition pour continuer à explorer l’univers de PHP et ses évolutions passionnantes.

Vous avez aimé ?

0