Grégoire Pineau — Doctrine, objet typé et colonne JSON#
Nous verrons ici l’exemple d’une fonctionnalité semblable à un CMS. Basé sur un système de blocs de contenu, ils comportent beaucoup de champs en commun. L’usage de Doctrine et de ses systèmes d’héritage nous est montré.
Avec ces cinq objectifs, la direction du talk est donnée :
- Éviter la duplication de code
- Pouvoir stocker les blocs en base de données
- Avoir au maximum des objets PHP
- Et si possible un objet par type de bloc
- Avoir un système performant
Grégoire Pineau nous montre sa solution qui, grâce aux types custom de Doctrine, répond à ces problématiques.
De l’implémentation du JSON type jusqu’à l’Unit of work, cette présentation est une belle démonstration de l’usage de Doctrine.
Charles Desneuf — Tester du legacy grâce à l’Approval testing#
Charles Desneuf présente l’Approval testing : à travers son outil, il montre comment récupérer et comparer le résultat d’un process.
Dans des cas complexes, il montre dans une session de live coding comment falsifier la métadonnée pour s’assurer du fonctionnement d’un code legacy avant son évolution.
Le plus impressionnant restera la création de matrice de test pour générer les tests et obtenir un taux de couverture élevé en toute simplicité.
Antoine Bluchet — PHP dans le navigateur pour documenter API Platform#
Nous avons eu ici une démonstration technique impressionnante de WASM, qui permet de compiler d’autres langages que le JavaScript pour le navigateur.
Un grand tour d’horizon de la technologie, de son fonctionnement et de son utilisation. La compilation des assets sera importante afin de pouvoir utiliser le cache des navigateurs.
Bonus, le cache Symfony est conservé à travers la navigation, seulement 60ms pour afficher la page d’accueil Symfony !
Les cas d’usages nous paraissent en revanche rares, mais pas inexistants. Nous avons notamment pu imaginer de la documentation clef en main ou encore des outils de formation. Plus de soucis d’environnement pour les apprenants !
PHP WASM code and demo at https://t.co/syDf5lWnck
Slides: https://t.co/mKGWOYMGoB
Next time I’ll stay longer! Thanks @afup for everything!
— soyuka (@s0yuka) May 12, 2023
Allison Guilhem — Groupement des messages sur Symfony Messenger#
Encore une superbe conférence ici donnée par Allison Guilhem. En débutant par un tour d’horizon du traitement des messages par la librairie, nous voyons ensuite pourquoi le traitement par défaut ne répond pas à tous les besoins.
Le traitement par lot sera abordé ainsi que l’historique de cette fonctionnalité à travers le temps et les PR. Sans nul doute que nous utiliserons cette fonctionnalité au sein d’un projet.
Kévin Dunglas — Protection contre les attaques logistiques avec Composer#
Mitigate Attacks on your #PHP Supply Chain: https://t.co/xAl8HEnBDN #AFUPDay pic.twitter.com/Ws2f5cATLF
— Kévin Dunglas (@dunglas) May 12, 2023
Reprise de la conférence après un super repas, Kévin Dunglas nous donne une “conférence digestive”. Ici pas de code, rien de trop complexe. Uniquement la notion Supply chain, l’historique des soucis ayant déjà existé chez d’autres technologies et pourquoi nous sommes un peu plus épargnés.
PHP est plus épargné que JavaScript ne serait-ce que par son écosystème. En moyenne, le nombre de packages d’un projet PHP basé sur Composer est moindre que celui d’un projet JavaScript. La popularité de JavaScript est aussi un facteur qui le rend plus attractif pour les attaquants.
On y apprend plusieurs types d’attaques et comment se protéger dans l’écosystème au niveau de Composer. Sa proposition est d’établir une liste de vendors que chacun juge “safe” et que les nouveaux paquets utilisés soient vérifiés manuellement lorsqu’une nouvelle dépendance tierce (transitive dependency) est nécessaire.
Olivier Mairet — ApiTester et automatisation des tests#
Olivier Mairet nous présente ici ApiTester, une solution qui permet d’exploiter au maximum OpenAPI pour générer automatiquement un nombre impressionnant de tests de vos endpoints.
C’est une solution qui semble intéressante et qui sera à essayer par nous-mêmes au sein d’un projet.
Olivier nous a promis que le package sera disponible en open-source prochainement.
Gina Peter Banyard — Gestion d’erreur#
Une conférence très intéressante et intelligente nous a été présentée par Gina Peter Banyard.
À travers un exemple concret, elle nous montre comment gérer les erreurs dans un projet en chaînant les appels de fonctions… Pour aboutir au pattern Monad dans un usage réel.
PHP n’étant pas conçu pour que ce pattern existe, elle nous montrera comment néanmoins l’intégrer. Un sujet peu simple et pourtant qu’on aura compris. En partie.
Laura Durieux — Où sont passées les femmes de l’histoire de la tech ?#
Les slides de ma conférence de vendredi pour @afup sont en ligne 👉 https://t.co/4lEXAqhEha
— Laura Durieux (@devgirl__) May 14, 2023
La conférence qui nous aura le plus intéressés et de loin. Laura Durieux nous présente ici un sujet qui retrace la place des femmes dans l’informatique moderne.
Je pensais en connaître, mais j’ai été surpris de voir que je ne connaissais que très peu de femmes ayant participé à l’histoire de l’informatique.
De cette conférence je n’en retiendrai malheureusement pas de nom, mais des faits. Et afin de retenir les noms, j’ai sauvegardé les slides précieusement.

