Programme
PHP gotchas
PHP a beaucoup évolué, mais certains comportements du langage continuent de surprendre, même chez des devs expérimenté•e•s. Ces comportements ne sont pas nécessairement des erreurs, mais le résultat de choix historiques et de compromis techniques.
Certains de ces détails passent inaperçus jusqu’au jour où ils produisent un effet inattendu. Ils rappellent que le langage n’est pas toujours aligné sur notre intuition et qu’il faut parfois aller au-delà des apparences pour comprendre ce qui se joue vraiment dans le code.
La session proposera une exploration interactive de ces situations (venez avec votre smartphone). Chaque exemple sera l’occasion d’examiner le comportement réel du langage, d’en comprendre la logique et de voir comment l’éviter grâce à des outils d’analyse statique comme PHPStan.
En filigrane, il s’agit surtout d’apprendre à reconnaître nos propres biais de confiance, car la plupart du temps, le piège ne vient pas de PHP, mais de la façon dont on le lit.
Embeddings en PHP : Symfony AI en pratique
On parle beaucoup d’IA, mais rarement de ce qu’on peut vraiment en faire dans un projet PHP. Avec Symfony AI, il devient enfin possible de manipuler des modèles d’embeddings, de génération ou de classification sans quitter son écosystème habituel.
Dans ce talk, on explore concrètement l’usage des embeddings avec Symfony AI, à travers un exemple simple : rapprocher automatiquement des pages web par similarité.
Au programme :
- comprendre ce qu’est un embedding et comment il permet de mesurer la similarité entre textes ;
- découvrir les plateformes et modèles disponibles, et apprendre à choisir le bon selon vos besoins ;
- vectoriser du contenu depuis Symfony et communiquer efficacement avec votre modèle ;
- stocker et requêter les vecteurs dans différents stores (Redis, ClickHouse, Postgres, etc.) ;
- héberger et scaler votre “vectoriseur” (Ollama, multi-GPU, RabbitMQ…).
L’objectif : comprendre les bases réelles de l’IA sémantique appliquée au PHP, et repartir avec une méthode claire pour expérimenter, comparer et mettre en production vos propres embeddings.
Repenser les APIs
Depuis vingt ans, les APIs se sont imposées comme un pilier du web. Nous avons connu XML-RPC, puis SOAP, puis REST, puis GraphQL, et désormais des écosystèmes entiers reposent sur des échanges machine-to-machine standardisés. Mais derrière cette normalisation, certaines pratiques se sont transformées en dogmes : REST “pur”, JWT obligatoire, endpoints découplés à outrance… souvent au détriment de la simplicité et de la maintenabilité.
Dans cette conférence, nous allons remettre en perspective les fondements des APIs, et explorer des approches plus pragmatiques :
- Les webhooks : Quand un simple appel HTTP entrant suffit pour synchroniser des systèmes sans complexité inutile.
- Les traitements de formulaire : Une manière efficace et robuste d’exposer une API, fidèle à la philosophie HTTP originelle.
- REST versus RPC : Pourquoi limiter son vocabulaire à du CRUD ?
- JWT versus HTTP Basic : Quelles sont les limites de l'utilisation de jetons cryptographiques ?
- Dual-purpose endpoints : Et si votre site web était aussi votre API ?
À travers des exemples concrets et des cas d’usage réels, nous verrons comment repenser la conception d’une API à partir de ses besoins réels, et non d’un modèle imposé.
Une conférence qui invite à désapprendre certaines habitudes, à redécouvrir la puissance du protocole HTTP, et à bâtir des APIs plus efficaces et plus durables.
L'IA comme binôme de code : Guide pratique
L'IA générative a transformé notre façon de coder, mais entre promesse marketing et réalité, comment en tirer le meilleur parti au quotidien ?
Cette présentation pragmatique vous montrera comment intégrer efficacement les assistants IA (GitHub Copilot, Claude, etc.) dans votre workflow de développement PHP. Nous explorerons les plugins pour PhpStorm et VS Code, les techniques de prompting qui fonctionnent vraiment, et surtout, nous identifierons les cas d'usage où l'IA excelle (boilerplate, tests, refactoring) et ceux où elle reste limitée.
À travers des exemples concrets, vous apprendrez à collaborer avec l'IA sans perdre votre esprit critique, à gagner du temps sur les tâches répétitives tout en gardant le contrôle sur votre code. L'IA comme assistant, pas comme pilote automatique.
De la rentabilité à la durabilité
Les débuts d'une start-up passent souvent par une course à la rentabilité et il n'est pas toujours évident de trouver l'équilibre entre la qualité et la vélocité.
Lors de notre arrivée chez Weglot, l'équipe technique avait doublé pour investir massivement dans la qualité de code. Pour répondre à ce besoin, nous avons construit un écosystème qualité complet sur notre projet Symfony/PHP: linters (PHP CS Fixer, Twig CS Fixer, ...), analyse statique (PHPStan), tests (PHPUnit, Paratest, ...), et bien d'autres.
Ce talk vous présentera notre démarche progressive:
- Dans quel ordre adopter ces outils ?
- Comment adopter l'analyse statique étape par étape ?
- Quel impact mesurable sur la vélocité et la sérénité de l'équipe ? Chaque outil sera illustré par des exemples concrets et des retours d'expérience. Nous approfondirons particulièrement PHPStan, véritable pilier de notre stratégie qualité.
Comment tester une API externe en ayant 0 Mocks ?
Dans une époque où les APIs prennent de plus en plus de place, nos tests se retrouvent dépendants de ces dernières.
La première idée qui nous vient à l'esprit c'est de créer des Class Mock pour bouchonner ces API, mais ceci peut devenir vite fastidieux et difficilement maintenable.
Durant ce talk, nous allons voir comment tester une API externe en restant le plus proche du contrat de cette dernière et en ayant zéro mock.
L'exception qui confirme la règle
“Everything fails all the time.” — une vérité universelle, aussi valable en développement. Un appel API échoue, une requête SQL déraille… et soudain, une Exception surgit un peu comme un Pokémon sauvage. À ce moment-là, deux choix s’offrent à nous : ➡️ L’attraper avec une Hyper Ball (et la logguer soigneusement dans notre Pokédex), ou ➡️ La laisser filer, au risque qu’elle réapparaisse au pire moment.
Les exceptions sont bien plus qu’un simple mécanisme d’erreur : c’est un outil puissant que PHP met à notre disposition pour construire des applications plus sûres, plus robustes et plus observables.
Dans cette conférence, nous verrons comment réagir face à une exception, les bonnes pratiques de structuration en PHP, les outils qu'offrent Symfony pour les intercepter, les transformer et les logguer efficacement.
Sous le capot de Castor, le task runner PHP
Castor, c’est ce task runner open source que nous avons créé chez JoliCode pour exécuter des tâches aussi simplement qu'avec make.
Derrière cette simplicité apparente, le projet cache une mécanique interne plus riche qu’il n’y paraît :
- une bonne quantité d’exemples qui servent à la fois d’inspiration pour les utilisateurs, d’illustration pour la documentation, mais surtout de suite de tests automatisés ;
- une documentation toujours à jour avec les fonctionnalités ;
- un système de release avec phars et binaires construits automatiquement.
Dans ce talk, je vous emmène sous le capot de Castor pour montrer comment tout cela s’articule, les choix techniques qui ont guidé sa conception, et quelques astuces glanées au passage.
Mots de passe, SSO et Passkeys : l’authentification moderne en PHP
Comment sécuriser correctement l’authentification dans nos applications en 2026 ? Nous ferons le point sur ce qu’il faut encore (et ne faut plus) faire avec les mots de passe, l’usage approprié de l’authentification déléguée (OAuth2 / OpenID Connect), puis nous regarderons comment WebAuthn et les Passkeys changent complètement le paradigme. Une conférence pragmatique, avec des recommandations, des architectures types et des exemples concrets dans l’écosystème PHP.
Reconfigurer Symfony en temps réel avec des sidekicks applicatifs
PHP a longtemps été pensé comme un langage strictement stateless : une requête, un processus, puis tout recommence. FrankenPHP change profondément ce contrat en permettant de lancer des workers PHP long-running directement au sein d’une application Symfony. Pas pour transformer Symfony en serveur Node, mais pour lui donner des capacités qu’il n’a jamais pu avoir jusque-là.
Dans cette conférence, je propose un nouveau pattern : les sidekicks applicatifs. Des workers PHP spécialisés, hors cycle HTTP, qui écoutent leur environnement et reconfigurent l’application en temps réel — sans polling, sans TTL approximatifs, sans redeploy.
À travers des cas concrets (découverte Redis Sentinel, rotation de secrets et de clés JWT, feature flags dynamiques, invalidation ciblée de cache ou réactions de sécurité), nous verrons comment faire évoluer une application Symfony existante tout en restant fidèle à ses principes.
L’objectif : montrer que PHP peut écouter, réagir et s’adapter en temps réel — sans renier sa simplicité ni ses patterns historiques.