L’AFUP Day 2024 s’est déroulé cette année en simultané dans quatre villes : Lille, Lyon, Nancy, et Poitiers. Une partie de notre équipe était présente à l’édition lilloise.
En tant que sponsor de l’événement, nous avons été ravis de participer à cette journée riche en échanges et en découvertes. Retrouvez un résumé de ce que nous avons vu lors de cette formidable journée !
Passage d’API Platform 2.7 à 3.3
Lors de la conférence “API Platform 2.7 vers 3.x : l’upgrade-path ultime !” animée par Vincent Chalamon de Les-Tilleuls.coop, les étapes de migration sont détaillées, avec un focus sur les défis spécifiques rencontrés lors de la mise à jour du code personnalisé. Vincent met en lumière les principaux changements, tels que le passage des annotations de ressource à un nouveau namespace, la révision des interfaces de fournisseurs et de persistance de données, et l’introduction d’un nouveau système de métadonnées. Il aborde également le retrait des data transformers (DTOs) et leur remplacement par des State Processors et State Providers personnalisés. La session explore comment gérer les dépréciations et utiliser les nouvelles interfaces pour assurer une transition en douceur. Cette conférence est cruciale pour les développeurs leur permettant de préparer efficacement leurs projets pour une compatibilité future avec API Platform 3.3.
Le passage d’API Platform de la version 2.7 à 3.3 représente une mise à niveau majeure qui implique de nombreux changements significatifs, particulièrement pertinents pour les projets utilisant Sylius comme CMS e-commerce. Bien que Sylius soit encore sur la version 2.7, une branche de compatibilité pour la version 3.3 est actuellement en cours de développement. Cette transition est essentielle pour tirer parti des nouvelles fonctionnalités et améliorations de performances offertes par API Platform 3.3.
Introduire de la qualité dans un projet “legacy”
Dans sa présentation “Introduire de la qualité dans un projet ‘legacy’”, Rachid Hammaoui, développeur PHP expérimenté et adepte de Symfony, partage ses techniques pour améliorer les projets existants sans compromettre leur fonctionnalité ou leur histoire. Il souligne que le code legacy, souvent perçu comme obsolète ou mal structuré, mérite respect et considération car il a répondu aux besoins initiaux malgré les contraintes de l’époque.
Rachid explique que l’amélioration de la qualité dans un projet legacy commence par un audit complet pour comprendre le contexte et évaluer les performances et la sécurité. Adopter des conventions de code, effectuer des revues de code entre pairs, et utiliser des outils d’analyse statique comme PHPMD et PHPStan sont essentiels pour maintenir une haute qualité de code. Il insiste sur l’importance de respecter l’historique du projet et de procéder par étapes, en tenant compte des enjeux business et en évitant les modifications sans raison valable.
Chez Monsieur Biz, nous appliquons ces principes rigoureusement pour garantir la qualité des projets Sylius, sur lesquels nous sommes spécialisés depuis 2018. Nous suivons des conventions de codage strictes et utilisons des outils d’analyse statique pour tous nos projets et plugins Sylius. Nous offrons des audits complets et un accompagnement pour la reprise de projets legacy, permettant à nos clients de bénéficier de notre expertise pour maintenir et améliorer leurs plateformes Sylius.
Profiler son application PHP en toute gratuité
Lors de la conférence “Profiler son application PHP en toute gratuité”, Valentin Silvestre d’Akawaka explore diverses solutions de profiling gratuites, offrant des alternatives viables à Blackfire, souvent hors budget pour de nombreux projets. Valentin, passionné de Symfony et contributeur open source, présente des outils tels que Xdebug, Xhprof, et XHGui, ainsi que leurs méthodes de profilage et visualisations de résultats, comme les call graphs et les flame graphs.
Les solutions de profilage gratuites abordées incluent Excimer-ui, Pyroscope, Grafana, et Speedscope. Valentin met en avant les avantages de Sentry, une solution open source en mode self-hosting, et discute de l’impact des différents profilers sur les performances. Il souligne l’importance de profiler en production pour obtenir des données précises et annonce l’avenir prometteur des profilers avec des initiatives comme OpenTelemetry, qui favorise l’interopérabilité entre les services.
Nous appliquons ces principes et utilisons des outils de profiling comme Xdebug et Blackfire pour assurer des sites performants et fluides. Inspirés par cette conférence, nos développeurs sont motivés pour renforcer notre attention aux performances, garantissant ainsi la qualité optimale de nos projets Sylius. Nous intégrons ces outils dans nos processus pour offrir des solutions de haute performance à nos clients, améliorant continuellement notre expertise en profilage et en optimisation des applications.
PHP: Particularly Horrible Programs
Dans sa présentation “PHP: Particularly Horrible Programs”, Gina Banyard explore de manière ludique et humoristique les bizarreries et les aspects inattendus de PHP. Cette conférence met en lumière une pléthore d’exemples de comportements insolites et inattendus du langage, offrant ainsi une perspective insolite sur les subtilités de PHP.
Gina présente des cas concrets où les comportements de PHP peuvent surprendre, tels que l’incrémentation de variables de type chaîne de caractères converties en entiers, les ajouts de tableaux, et les comparaisons entre objets totalement différents. La fonction isset peut aussi avoir des comportements étranges, ajoutant à la liste des surprises que les développeurs peuvent rencontrer.
Elle discute également des directives INI telles que disable_functions, utilisées pour supprimer et donner la possibilité de modifier l’accès à certaines fonctions, et comment les versions récentes de PHP (de 8.2 à 8.3) ont introduit de petites subtilités qui peuvent influencer le développement quotidien.
En conclusion, Gina, financée par la PHP Foundation, montre que comprendre ces particularités aide non seulement à éviter les pièges mais aussi à apprécier les évolutions de ce langage de programmation, qui est le langage utilisé quotidennement chez nous pour le développement de nos projets web.
Release Management de Firefox
Pascal Chevrel de Mozilla a expliqué comment Firefox est livré toutes les quatre semaines à des centaines de millions d’utilisateurs. Employé chez Mozilla depuis 2008 et Release Manager depuis 2018, Pascal coordonne la livraison sur desktop et mobile.
Mozilla suit un cycle de release strict : versions Nightly toutes les 12 heures, Beta trois fois par semaine, et finales toutes les quatre semaines. Des versions entreprises stables sortent une fois par an. Le processus implique une coordination avec les développeurs, le marketing, la QA, et d’autres départements, en gérant également des incidents critiques comme des failles de sécurité.
Utilisant un monorepo avec près d’un million de commits et des outils comme Bugzilla pour le suivi des bugs, Mozilla s’appuie sur une forte communauté pour améliorer le navigateur. Des initiatives comme “Nightly Reboot” encouragent la participation des utilisateurs.
Pascal insiste aussi sur le fait que Firefox est un navigateur qui protège la vie privée de ses utilisateurs.
J’ai testé API Platform V3, qu’est-ce que j’en pense en tant que développeuse C# ?
Laura Durieux, développeuse C# et streameuse sur Twitch, a testé API Platform V3. Elle a comparé ce framework PHP à ASP.NET Core, en partageant ses impressions sur ses avantages et inconvénients. API Platform, basé sur Symfony, a séduit par sa simplicité d’utilisation et ses fonctionnalités prêtes à l’emploi, notamment pour l’authentification, la gestion des fichiers, et le temps réel avec Mercure. En revanche, ASP.NET Core nécessite une configuration plus manuelle.
Laura a apprécié l’intégration aisée de la documentation et la gestion des entités dans API Platform, grâce aux commandes Symfony. Elle a aussi souligné la communauté PHP et Symfony comme étant très accessible et riche en ressources, un atout important par rapport à la communauté .NET.
Pour Monsieur Biz, l’utilisation de PHP et Symfony, sur lesquels est basé Sylius, présente un avantage majeur grâce à cette forte communauté et au support étendu, facilitant ainsi le développement et l’amélioration continue des projets.
Microservices, maxi supplice
Dans cette conférence intitulée “Microservices, maxi supplice”, Yann Jacquot de Theodo et Alexis Stefanski de CircularX partagent leur expérience de fusion de microservices en un monolithe pour résoudre des problèmes de performance. Après avoir constaté des temps de réponse décevants et un couplage excessif entre les services, ils ont orchestré une task force pour cette migration délicate. Grâce à une démarche itérative, des outils stratégiques tels que l’API Gateway d’AWS et le DMS, ainsi qu’une réorganisation méthodique du code, ils ont réussi à transformer leur architecture et à améliorer considérablement les performances de l’application.
Cette fusion a été couronnée de succès, offrant des temps de réponse plus rapides, un historique des choix technique receuilli lors d’ADR (Architecture Decision Records) et une meilleure compréhension du projet de l’ensemble de l’équipe par l’intermédiaire de l’utilisation du DDD (Domain Driven Dseign). Ce récit met en lumière l’importance d’une compréhension approfondie du métier et d’une base technique solide pour relever les défis liés aux architectures logicielles.
Intégration continue avec GitLab et Drupal
Ines Wallon partage son expertise sur l’intégration continue (CI) avec GitLab, mettant en lumière l’importance d’une CI/CD bien configurée pour les projets Drupal. Elle souligne l’utilisation efficace des Merge Requests, Pipelines, et Jobs dans GitLab pour automatiser les processus de qualité de code et de déploiement. Ines met en avant l’utilisation de Docker pour l’exécution isolée du code, ainsi que l’importance des artefacts et des runners dans la gestion des pipelines. Elle présente également son expérience dans la création d’une CI personnalisée, incluant des outils tels que Composer, YARN, CSSLint, PHPCS, et Composer Audit pour garantir la qualité et la sécurité du code.
Tout a été packagé par Ines dans un Drupal Gitlab Toolbox, pour en faire un inclusion dans les CI des autres projets, avec possibilité de customiser les variables pour ajuster certains réglages, même si cette partie de Gitlab CI n’est pas exempte de bugs. Chez Monsieur Biz, nous utlisons les Github Actions pour mettre en place nos lignes d’intégration continue (CI), nous nous assurons que tous les tests et les vérifications de sécurité passent correctement avant de faire un déploiement en preproduction et en production.
Dockerisation Efficace des Applications PHP : Retours d’Expérience et Bonnes Pratiques
Kévin Dunglas, créateur du framework API Platform et membre éminent de la communauté PHP, partage son expertise sur la dockerisation d’applications PHP, mettant en avant l’utilisation efficace de Docker, Dockerfiles et d’autres outils pour améliorer les CI/CD pipelines et réduire les coûts. Il discute de l’optimisation des images Docker, mentionnant Symfony Docker comme un dépôt d’items pour cette optimisation. Il met également en lumière des conseils pratiques, tels que l’utilisation d’Hadolint et Superlinter pour vérifier les Dockerfiles, l’importance d’utiliser des versions explicites de PHP, et la structuration des Dockerfiles pour maximiser l’utilisation du cache Docker. L’utilisation de sockets UNIX pour améliorer les performances de communication entre le serveur web et PHP-FPM dans Docker est également abordée. Les technologies et outils mentionnés incluent Docker, Kubernetes, Symfony Docker, API Platform, FrankenPHP, Hadolint, Superlinter, Composer, Docker Bake, Helm et Skaffold. La dockerisation est présentée comme une pratique standard pour la standardisation et la distribution des applications PHP, offrant des environnements de développement cohérents et facilitant l’onboarding.
Nous utilisons Docker au quotidien pour nos environnements de développements, mais aussi pour certaines de nos pré-production et même en production pour certains services. Il est aussi utilisés pour les applications de tests de nos plugins Sylius.
Keynote de Clôture de l’AFUP Day Lille 2024
La keynote de clôture de l’AFUP Day Lille 2024 a conclu l’événement avec les remerciements chaleureux des organisateurs aux intervenants, aux sponsors, et à l’équipe bénévole pour leur travail extraordinaire.
Des annonces importantes ont été faites, notamment un rappel pour répondre au questionnaire du baromètre, et l’annonce du Forum PHP 2024 à Disneyland Paris pour la troisième année consécutive, avec des efforts pour réduire l’empreinte carbone et des partenariats avec des hôtels pour des réductions. Le CFP est ouvert, et une nouvelle track ultra-technique a été ajoutée, portant le nombre total de tracks parallèles à trois, pour diversifier les niveaux des conférences.
Un grand merci aux équipes de l’AFUP, et nous avons été ravis de sponsoriser cet événement !