Retour sur le Forum PHP 2023 - Jour 1
Publié le 16 octobre 2023
“PHP Developers! Assemble” La vingt-troisième édition du Forum PHP s’est tenue la semaine dernière à Disneyland Paris. Entre conférences pointues sur notre langage de programmation préféré et celles abordant des sujets de fond comme le mentorat, le burnout ou l’apprentissage, revenons sur les conférences qui nous ont marquées, jour par jour.
Why PHP is still awesome in 2023 #
Frank Karlitschek est le créateur de Nextcloud, mais également contributeur à ActivityPub (un protocole que nous affectionnons beaucoup) et utilisateur de PHP depuis 25 ans ! Il nous a introduit à Nextcloud, un logiciel décentralisé pour la gestion de fichiers, les discussions, les groupwares et les documents de bureau, basé sur des bibliothèques et des outils open source.
À travers Nextcloud, il explique pourquoi il a choisi PHP et pourquoi c'est encore un bon choix aujourd'hui :
- Facile à déployer
- Bonne scalabilité
- Simple à assimiler
- Un langage qui évolue encore
- Léger
- Une grande communauté de développeurs
- Un immense écosystème
Compte rendu rédigé par Vincent.
Symfony se met au front, à votre tour maintenant ! #
Mathéo Daninos de chez SensioLabs nous a parlé de la manière dont Symfony, Laravel et Ruby on Rails ont intégré le frontend avec Stimulus pour allier la dynamique du JavaScript à la robustesse des moteurs de templates Twig et Blade. Grâce à quelques attributs judicieusement placés, nous pouvons rapidement bénéficier de la fluidité des SPA.
De plus, grâce au composant AssetMapper de Symfony (co-réalisé par notre coopérateur Kévin), nous pouvons gérer nos fichiers JS/CSS sans dépendre d'un gestionnaire de paquets (dont nous savons qu'ils sont parfois capricieux en JavaScript).
Compte rendu rédigé par Clément.
Augmentez votre couverture : supprimez des tests ! #
Baptiste Langlade bosse sur une application Angular qui consomme une API Symfony. Il développe une application de gestion de documents, avec des réseaux potentiellement fermés qui ont nécessité d’avoir une importante batterie de tests fonctionnels. (730 tests, 1h15 de CI). La complexité étant exponentielle, ils ne peuvent pas indéfiniment gérer tous les cas et tout tester.
C’est là qu’intervient le Property Based Testing : une pratique consistant à générer aléatoirement des données pour couvrir le maximum de cas d’invalidités (permet de contrer la loi de Murphy : si un bug est possible, il arrivera). Et donc, plus on joue les tests, plus on couvre les cas d’erreurs. Pour ça ils utilisent une librairie “BlackBox” qui implémente un trait à ajouter directement dans nos classes de tests afin d’obtenir des données aléatoires selon un scope défini auparavant (ex: “String entre 1 et 250 char”).
Compte rendu rédigé par Clément.
Single Sign-On (SSO) : Simplifiez et sécurisez l'authentification dans vos applications PHP #
Olivier Mairet est développeur backend chez OpenClassrooms. Il a présenté SSO et SAML 2 et comment cette méthode et ce langage ont été implémentés pour gérer l’authentification unique des utilisateurs (B2C) et partenaires (B2B). Il nous propose un tour des flux d'authentification possibles avec SAML 2, leur configuration et leur utilisation. À travers une SAMLRequest, il démystifie ce qui se cache derrière cette dernière, et explique plus en détail les notions d’Identity Provider, Service Provider et SAML Assertions.
Enfin, Olivier nous montre comment intégrer tout ça dans une application PHP grâce à différentes librairies populaires afin de simplifier l’implémentation et la sécurité du flux d’authentification.
Compte rendu rédigé par Vincent.
J’ai créé un service SaaS, voyons ce qu’il ne faut pas faire #
Grégory Planchat nous a présenté l’outil Gyroscope, service SaaS en Low-Code permettant de créer des connecteurs. Basé sur Kubernetes, Istio et Harbor (suivant les recommandations de la CNCF), Grégory nous montre la stack qui a été choisie pour sa solution SaaS ainsi que la réflexion menée par son équipe lors de la sélection de ces technologies.
“Est-ce que je dois ajouter un nouvel outil ?”, ou est ce que mes services actuels ne permettent pas déjà de répondre à mon besoin ?
Les choix faits en début de projet sont déterminants ! Malgré tout, des problèmes arrivent dans le cycle de vie d’un projet, et il faut savoir s’adapter pour les éviter :
- Attention aux technologies à la mode mais peu éprouvées
- Choisissez des technos que vous maîtrisez et que l’équipe maîtrise (et accompagnez-les)
- Ajoutez des logs pour détecter les erreurs
- Écrivez vos propres outils (analyse, déploiement, etc.) progressivement
- Écrivez de la documentation (et des ADR pour expliquer les choix techniques) ; concentrez-vous sur le MVP puis sur le MSP (cf. Lean Manufacturing)
- Consacrez votre temps aux fonctionnalités les plus essentielles (le temps est la ressource la plus importante).
Compte rendu rédigé par Vincent et Clément.
Un moteur de collision en PHP ? #
Maxime Veber, de l’AFSY, vient nous parler de Gangbowl, un jeu en JavaScript qu’il a cherché à porter en PHP. (sans JavaScript, sans CSS). Il a utilisé SDL (dont il existe une extension pour PHP et une librairie FFI, qui s’installe facilement avec Composer).
FFI permet d'exécuter des fonctions C en PHP. SDL permet d’afficher une fenêtre pour y afficher son rendu contrôlé par des événements.
Pour la gestion de la physique, il a choisi Box2D (mais écrit en C++), il a ensuite utilisé SWIG pour générer une extension PHP à partir du code C++ (fonctionne aussi avec C).
La positive alt-itude ! Un outil d'inclusion pour votre accessibilité #
Angi Déborah Guyard nous parle des normes d’accessibilité et des outils d’inclusion nécessaires à la compréhension de la sémantique d’une page pour les personnes non ou malvoyantes. L’option “alt” des contenus HTML est une solution simple, mais qu’il faut correctement renseigner. Cela nous fait alors poser la question : “cette image est-elle vraiment pertinente ?”.
Lorsque l’image est pertinente (visant alors à compléter le contenu de l’article), le titre de celle-ci doit être de l’information la plus importante à la moins importante, sans “polluer” cette description de détails non pertinents. Quant aux images contenant du texte, ce qui est le plus important est le texte, tout simplement.
Attention cependant à ne pas être trop synthétique, à renseigner un contenu descriptif de l’image, et ne pas mettre le nom de l’image comme description.
Compte rendu rédigé par Vincent.
Mentors: super-héros ou super-vilains ? #
Pauline Rambaud, développeuse chez Bedrock, revient sur comment elle a été accompagnée tout au long de son parcours de développeuse. Elle donne pendant 40 minutes son point de vue, son expérience et ce qui lui a été personnellement utile dans son quotidien.
Après une définition du mentorat, elle revient sur ses premiers pas dans le milieu de l’informatique : un premier stage qui se passe mal lors de ses études puis le changement radical d’apprentissage lorsqu’elle arrive dans son entreprise actuelle.
Plusieurs étapes sont nécessaires pour qu’un mentorat se passe bien : il faut de la communication, beaucoup de travail, des bonnes pratiques à appliquer. Elle ajoute également que pour être un super mentor, il faut se sentir prêt·e à accueillir un mentoré et avoir une idée de mission ou de projet. Une clé pour qu’un mentorat se passe bien, il n’y a pas de secret, c’est la communication. Le mentoré doit poser des questions qu’il peut estimer stupides, il faut que le mentoré soit intégré dans une équipe et qu’on lui fasse confiance. Pauline donne l’exemple d’avoir progressivement eu des User Stories de difficulté croissante lors de ses sprints.
En résumé, en clin d'œil au titre de son talk, il n’y a pas de super vilains. Le mentorat, c’est des relations humaines avant tout, avec ses qualités et ses défauts. On peut toutes et tous être de bons mentors si on s’en donne les moyens. Il faut aimer l’humain et c’est OK si ça ne marche pas, c’est une expérience qui fera grandir.
Compte rendu rédigé par Cécile.
Utilisez la bibliothèque standard PHP (SPL) au quotidien #
Florian Merle de chez Akawaka échange sur la bibliothèque standard SPL. Cette bibliothèque propose des structures intégrées nativement à PHP et utilisées à différents niveaux du langage.
Grâce à la création d’un lecteur de musique en PHP, pas à pas, Florian nous a montré les éléments de SPL que l’on utilise au quotidien : exceptions, autoload, structures de données et itérateurs. Pour expliquer ces derniers éléments, Florian a brillamment décortiqué la structure et le fonctionnement des tableaux PHP, et comment la librairie SPL entre en jeu pour aller plus loin qu’un simple array. Puis, il se lance dans une analyse de la DX et des performances de l’implémentation de cette librairie par rapport aux tableaux PHP (spoiler : la librairie SPL semble plus performante !).
Cependant, SPL n’est pas parfait, et peut parfois poser quelques problèmes. Ceux-ci peuvent être résolus grâce à PHP DS, parfois même en ce qui concerne la gestion de la mémoire ! Enfin, les itérateurs font partie intégrante de la librairie SPL. Florian a alors créé des itérateurs pour son lecteur de musique, afin de montrer que leur implémentation et leur usage ne peuvent pas être gérés facilement avec des tableaux PHP.
Compte rendu rédigé par Vincent et Clément.
Burn-out dans l'IT, le commencement ! #
Thomas Boileau nous présente l’épuisement étudiant. Dans un premier temps il définit le burnout dans sa globalité bien qu'il n’y ait pas une seule et unique définition. Il nous explique que celui-ci n’est pas reconnu comme une maladie professionnelle et bien qu'il puisse mener à la dépression, il ne faut pas le confondre avec celle-ci.
En nous contant l’histoire de Virginie en reconversion via une formation courte de développement web, il retrace les différents facteurs l’ayant menée à un burnout étudiant. Que ce soit la pression qu'une reconversion peut représenter. Tant par les réseaux sociaux qui ne reflètent qu'une réalité brossée et accentuent son syndrome de l'impostrice. Mais aussi à cause de la charge de travail de plus en plus importante qu’elle s'impose quitte à délaisser sa vie de famille.
Au fur et à mesure de sa formation, il la verra changer de comportement petit à petit, passant d’une personne enjouée avec une motivation sans faille à quelqu'un de moins en moins confiante et de plus en plus fatiguée et renfermée sur elle-même. Bien qu’elle mènera à bien son projet et sa formation, au détriment de sa santé, elle abandonnera le développement quelques mois plus tard car elle ne se remettra pas de cette expérience. Elle avouera qu'ouvrir son ordinateur suite à cela était pour elle synonyme de souffrance.
Pour conclure, il nous rappelle qu’il ne faut pas oublier d’être attentif aux autres, de faire preuve d’empathie.
Compte rendu rédigé par Justine.
ReactPhp, Amp, RevoltPhp: comparatif des frameworks asychrones #
Après un bref retour historique sur la chronologie de l’asynchrone en PHP (depuis 2012), les “thenable” et le renouvellement en 2022 avec les Fibers (apparus avec PHP 8.1), Benoît Viguier se concentre sur les principaux composants core pour effectuer de l’asynchrone en PHP.
L’intérêt de l’asynchrone (car il faut peut-être le rappeler) est de jouer plusieurs fonctions en simultané. Afin de recréer le rythme de “We Will Rock You!” (Queen), Benoît va comparer les frameworks disponibles tels que ReactPHP, AMP et Revolt (clairement plus verbeux).
Entre les crashes, les lenteurs, les mauvaises DX et autres freins, l’usage de ces frameworks asynchrones peut être parfois complexe et nécessite quelques spécificités. Attention par ailleurs, la gestion de “multi-loops” peut potentiellement être acrobatique et peu optimisée.
HTTP Client depuis la V5 (récemment sortie) propose une implémentation AmpHttpClient. Le moment venu de choisir, chacun des frameworks a ses qualités et ses défauts, pour une librairie avec peu de dépendances, Benoît nous conseillera Revolt, plus bas niveau. Pour quelque chose de plus complet sur un de vos projets AMP et React sont assez similaires dans la syntaxe mais AMP a un temps d’avance (notamment sur l’usage des Fibers).
Compte rendu rédigé par Vincent et Clément.
Redéfinir le temps de travail et la rémunération : vers un nouveau modèle #
Xavier Gorse échange sur le temps de travail et la rémunération, et du lien (et la séparation) qui unit le pro et le perso. Parti du besoin d’un besoin évolutif de flexibilité, de visibilité et de transparence, Xavier définit ses objectifs pour un juste équilibre dans ces mécaniques : équité entre collaborateurs, et adaptation de la rémunération et du temps de travail.
Pour cela, il présente les grilles de salaire et d’impact (interne, externe, productivité, implication) mises en place chez Elao. Mais ces grilles doivent être évolutives et potentiellement revues régulièrement, y compris le positionnement individuel de chaque salarié·e sur celles-ci. Des challenges se posent alors, administratifs, légaux et logistiques, avec ces grilles.
Avec le recul, Xavier nous montre ce qui a déjà été mis en place chez Elao depuis juillet 2023, et ce qu’il reste à faire.
Compte rendu rédigé par Vincent.
Lights and shadows of BDD in Sylius (and probably other companies as well) #
Plutôt que parler de physique quantique et d’atome, Mateusz Zalewski a décidé de nous parler des sujets que nous maîtrisons : business et conceptions logiciels.
À ses débuts, on lui a dit que le BDD était du TDD mais avec un autre nom, puis que c’était du TDD en mieux, avec une notion d’UI testing.
Concrètement, le BDD est une façon de concevoir pour réduire l’écart entre les techniciens et les équipes business : du TDD focus sur le “pourquoi”.
Mateusz nous met en garde quant à nos tests Behat, parfois trop techniques, ennuyeux à écrire pour des développeurs et illisibles pour les équipes métiers. La méthodologie BDD doit coexister avec les méthodologies agiles, et s’y intégrer.
Compte rendu rédigé par Clément.
Les journalistes se moquent des logiciels libres, je vous explique pourquoi #
Loris Guémart, journaliste d'Arrêt sur Images, a commencé sa présentation par une revue de presse au sujet du Forum PHP 2023 (zéro, nada, walou), aucun groupe de presse n’a abordé l’événement, malgré les sujets tech et non tech présents tout au long de la conférence.
Plusieurs comparatifs de recherches Google : LibreOffice, Framasoft, KeePass, jouer sur Linux… Peu de couverture médiatique affichée sur ces logiciels libres en comparaison avec les grands groupes privés qui jouissent d’une couverture dans la plupart des grands médias.
Pourquoi ce désintérêt médiatique ?
- Guillaume Champeau : Un journalisme plus "grand public", sensible au marketing, qui va dans le sens des utilisateurs. Plus il y a d'utilisateurs de grosses marques, plus elles sont relayées.
- Thibaut Prévost : Difficile de savoir que le logiciel libre existe. Les journalistes de notre génération n’ont parfois même pas connaissance de ce web ouvert.
- Cassim Ketfi : Pas d’intérêt de relayer si ça concerne un faible pourcentage de la population.
- Pour Ertzscheid, parler de logiciel libre, c’est parler de politique, le logiciel libre est intrinsèquement politique, or les journalistes se veulent “neutres/lisses”et peinent à sortir de ces postures.
- D’après David Legrand il existe aussi une défiance du milieu tech envers les journalistes.
Compte rendu rédigé par Clément et Cécile.
Découvrez très prochainement la suite de notre compte rendu ! À bientôt !