SymfonyLive Paris 2026

Dev, cloud & sécu26–27 mars 2026Paris, Maison internationale, Cité internationale universitaire de Paris

Dates officielles (live.symfony.com/all et page de l'édition). Conférence en français, une seule salle : 16 talks et une session de 4 lightning talks, précédés de formations les 24 et 25 mars. Lieu : premier étage de la Maison internationale de la Cité internationale universitaire de Paris (page « Le Lieu », archivée). Environ 500 participants annoncés avant l'événement (Presse Agence).

Symfony se met à l'heure des agents de code : nouveau composant Terminal (TUI) écrit largement avec des LLM, coding agent maison en PHP, FrankenPHP qui absorbe le poste de dev et les sidekicks, avec un fil rouge répété par tous les comptes-rendus : l'IA produit, l'humain valide et reste responsable.

16 sessions résumées · 1 vidéo · mise à jour le vendredi 9 octobre 2026 · synthèse à compléter

Sources lues et limites de cette synthèse

Corpus : Programme officiel (planning archivé, descriptifs, page replay avec résumé des lightning talks), 6 comptes-rendus d'entreprises publiés entre le 27/03 et le 26/06/2026 (JoliCode, Webnet x2, Les-Tilleuls.coop, SensioLabs, ACSEO), le post LinkedIn de sketchnotes de Mathieu Desnouveaux couvrant les 15 conférences, les billets du blog Symfony (wrap-up, replays) et le transcript de la keynote de Fabien Potencier sur le composant Terminal, seule vidéo de talk publique sur YouTube. Ajout le 09/10/2026 : slides publiées par 4 speakers (Tamarelle, Dunglas, Pineau sur Speaker Deck, Buchmann sur son site) et billet de blog de Kévin Dunglas.

Limites : Corpus dominé par des sponsors et des sociétés de speakers (JoliCode compte Grégoire Pineau parmi ses auteurs, l'article Les-Tilleuls.coop est signé par Alexandre Daubois, lui-même speaker d'un lightning talk, SensioLabs est l'organisateur historique) : tonalité très positive et peu de critiques. Le compte-rendu jour 1 de Webnet semble en partie paraphraser les descriptifs du programme (détails non corroborés, mention d'un « futur Symfony 8 » alors que Symfony 8 est sorti fin 2025), il est utilisé avec prudence. Les replays sont sur la plateforme payante de SymfonyLive : un seul transcript public (keynote TUI) ; les sessions du jour 2 sont moins couvertes (Webnet n'a publié que le jour 1). Les slides ajoutées montrent le contenu préparé par les speakers, pas ce qu'en ont retenu les participants ; celles de Grégoire Pineau sont étiquetées AFUP Day 2026.

Synthèse globale

1. Une édition tirée par les agents de code

Tous les comptes-rendus font le même constat : l'IA, déjà présente en 2024 sous forme d'images générées, est cette fois au cœur des sujets (JoliCode). Le fil est tenu par Fabien Potencier, qui relie ses deux interventions du jeudi : le composant Terminal est né de son envie de comprendre les agents de code, qui vivent dans le terminal, et sert d'interface à l'agent PHP présenté l'après-midi. Le reste du programme décline le thème à tous les niveaux : revue de code (Boileau), fonctionnalités LLM en production (Galopin), embeddings (Pineau), agents dans des conteneurs (Dunglas), et deux lightning talks sur le vibe coding de jeux et l'orchestration de workflows LLM. SensioLabs résume : Symfony est « fully geared up for the era of Artificial Intelligence ».

2. Le mainteneur comme cas d'étude

Le discours le plus concret sur l'IA vient du créateur du framework lui-même. Dans le transcript de la keynote, Fabien Potencier présente le TUI comme le premier composant Symfony écrit très largement avec des LLM, code relu mais pas forcément les tests, et remercie Claude pour une accélération de 60 à 70 % d'une bibliothèque Markdown. Il propose même de remplacer les pull requests par des prompts de spécification dont il paierait les tokens. JoliCode rapporte que de nouvelles versions de Twig sont désormais gérées de manière quasi automatique par un agent. Ce retour d'expérience de première main pèse plus lourd que les annonces : il montre le mode de travail visé plutôt que de le promettre.

3. L'humain dans la boucle, un refrain partagé

Le consensus est net et formulé presque dans les mêmes termes partout : l'IA produit, l'humain valide et porte la responsabilité (conclusion JoliCode, ACSEO, Webnet). Chez Yousign, l'assistant de review est un « plus dans la boucle » et un outil de transmission des standards, pas un remplaçant (Boileau, via JoliCode et ACSEO). La phrase la plus tranchée vient de Fabien Potencier, rapportée par ACSEO : « dans 6 mois vous êtes morts », pour ceux qui font du vibe coding sans maîtrise du développement ni relecture. Côté méthode, la même idée revient sous plusieurs formes : skills réutilisables et contexte soigné (Potencier), datasets d'évaluation contre les régressions (Galopin), agents enfermés dans des conteneurs à liste blanche (Dunglas, et l'orchestrateur « Gérard » selon ACSEO).

4. PHP qui dure : FrankenPHP, Fibers et sidekicks

Deuxième tendance lourde : PHP sort du modèle « une requête, un processus ». Le TUI tourne sur une boucle Revolt et des Fibers sans aucune extension ; le mode worker de FrankenPHP arrive en développement avec le hot reload (Dunglas) ; les sidekicks de Nicolas Grekas proposent des workers long-running qui reconfigurent l'application en temps réel ; l'outil Ember apporte l'observabilité de ces workers. Webnet y lit « l'asynchrone et la performance à tous les étages », Desnouveaux des possibilités « qu'on ne pouvait pas envisager avant en PHP ». Le JsonStreamer (Pegeot) et le Scheduler distribué (Augustin) complètent ce tableau centré sur la performance et les gros volumes.

5. Le socle données et front ne disparaît pas

La deuxième journée a surtout parlé de modélisation : héritage Doctrine (Janot), JSON dans une base relationnelle plutôt qu'un modèle EAV (Bonfils et Fourny), ClickHouse pour l'analytique (Neutron), chiffrement recherchable (Tamarelle, jeudi). JoliCode insiste : les outils IA « ne doivent pas éclipser l'importance de la technicité ». Côté front, Symfony UX et Hotwire occupent deux créneaux, du mobile natif avec UX Native (Zairig) à l'édition simultanée avec Turbo, Mercure et Stimulus (Buchmann), avec la même promesse : garder la logique dans le backend.

6. Tensions, réserves et biais du corpus

Les critiques restent rares. Les plus nettes portent sur les limites des solutions présentées : UX Native demande encore Xcode et du code mobile pour les fonctions natives (JoliCode), le Scheduler a buté sur la scalabilité et s'appuie sur une solution temporaire (Les-Tilleuls.coop), le chiffrement applicatif complexifie l'application et ferme la recherche hors Doctrine (JoliCode), l'assistant de review n'a pas été adopté en v1 (Boileau). Les slides publiées après coup ajoutent les réserves des speakers eux-mêmes : le chiffrement ne protège pas d'une fuite par l'interface (Tamarelle), Stimulus échoue en silence quand les noms ne correspondent pas (Buchmann). Le corpus lui-même est biaisé : les retours viennent presque tous d'entreprises sponsors ou employant des speakers (JoliCode, Les-Tilleuls.coop, SensioLabs, ACSEO), un seul post LinkedIn de participant a été lu, et les replays sont payants, ce qui limite la vérification sur scène à la seule keynote TUI ; les slides de quatre speakers (Tamarelle, Dunglas, Pineau, Buchmann) comblent en partie ce trou, du point de vue des speakers.

7. La vie de l'événement

Rendez-vous installé à la Cité internationale universitaire, dont SensioLabs rappelle le centenaire, avec une salle unique, un quiz et des interviews en direct sur le stand SensioLabs (podcast Café Tech avec Imen) et l'apéritif communautaire de JL Recrutement. Les formations des 24 et 25 mars (sécurité, POO, agent IA, DDD, Kubernetes, Symfony 8) n'ont laissé aucune trace publique. Prochaine édition annoncée les 25 et 26 mars 2027.

Actions concrètes citées

  1. Séparer les responsabilités en CLI : garder Console pour les commandes (arguments, options, aide) et confier l'affichage et l'interaction au nouveau composant Terminal/TUI, expérimental et proposé pour Symfony 8.1 (Potencier, transcript).
  2. Dans un agent de code, le harness compte autant que le modèle : 4 outils suffisent (lire, écrire, modifier, bash), une mémoire en arbre pour revenir en arrière, une compression du contexte qui garde le premier message et les derniers (Potencier, retour JoliCode).
  3. Transformer toute instruction répétée en skill : du temps perdu au début, beaucoup de temps gagné ensuite, comme pour les tests (Potencier, JoliCode) ; le contexte compte plus que le prompt (Les-Tilleuls.coop).
  4. Pour un assistant de code review IA, mesurer l'usage et construire avec les développeurs : la première version n'était quasiment pas utilisée chez Yousign (Boileau, JoliCode).
  5. Chiffrer les données sensibles dès la conception, au niveau d'un type Doctrine, et ajouter des champs hashés pour garder la recherche possible (Tamarelle, JoliCode et Les-Tilleuls.coop).
  6. Réserver le JsonStreamer aux gros volumes (indexation, exports) et garder le Serializer pour les API courantes (Pegeot, Webnet ; « gain x10 » annoncé selon Desnouveaux).
  7. Tester le JSON en base relationnelle avant un modèle EAV : performances à peine inférieures à un schéma classique, avec la flexibilité en plus (Bonfils et Fourny, JoliCode).
  8. En héritage Doctrine, préférer un DiscriminatorMap explicite, un seul niveau d'héritage et des colonnes indexées ; passer de STI à CTI reste possible (Janot, JoliCode et Les-Tilleuls.coop).
  9. Faire tourner les agents de code dans un conteneur avec pare-feu et liste blanche de domaines (Symfony Docker, Dunglas ; orchestrateur de Potencier selon ACSEO).
  10. Fiabiliser les fonctionnalités LLM avec un dataset d'évaluation et une optimisation de prompt (DSPy, GEPA), qui sert aussi de garde-fou contre les régressions lors d'un changement de modèle (Galopin, ACSEO).

Session par session

Jeudi 26 mars

Keynote▶ vidéo + transcript

Concevoir des TUI en PHP : le composant Symfony Terminal

Fabien Potencier — Symfony

Retours : Blog JoliCode, Blog Webnet (Wajdi Bessassi), Blog Les-Tilleuls.coop (Alexandre Daubois), Blog SensioLabs, Mathieu Desnouveaux (sketchnote)

  • Sur scène : deuxième version d'une keynote donnée à Bruxelles trois ans plus tôt, avec « pas une seule ligne de code en commun ». Le premier prototype avait un défaut de conception de fond ; ce qui a changé entre-temps, ce sont les LLM : « le premier composant Symfony où je me suis très largement aidé des LLM » (il dit avoir relu le code, « pas forcément les tests »).
  • Séparation des responsabilités : Console garde les commandes, arguments et options ; le composant TUI prend l'affichage riche et l'interaction. Déclencheur : comprendre les agents de code, qui vivent dans le terminal.
  • Des réflexes web dans le terminal : trois façons de styler (PHP, classes à la Tailwind, feuille de style avec sélecteurs et état focus), flex, breakpoints sur la largeur, templates Twig pour chaque widget (input, éditeur, listes, Markdown, overlays, calques avec transparence, images via le protocole Kitty avec repli en ASCII).
  • Parti pris : utiliser le terminal plutôt que le réimplémenter (scroll et curseur natifs, souris seulement en option). Boucle adaptative Revolt et Fibers (100 images/s en activité, environ 4 au repos), rien de bloquant, rendu ligne par ligne qui ne redessine que ce qui change ; démos de jeux pour trouver les limites.
  • Pull request ouverte en direct pour Symfony 8.1 (29 fichiers, documentation comprise), site de démo où PHP et le terminal Ghostty tournent en WASM dans le navigateur. Proposition de contribution inédite : « je veux pas de pull request », mais des prompts de spécification dont il paie les tokens.
  • Côté participants : démonstrations de Tetris et 2048 jugées « bluffantes » (JoliCode, Webnet, Desnouveaux), ouverture de la PR saluée comme le moment symbolique (Webnet, SensioLabs) ; Les-Tilleuls.coop retient aussi un futur composant de conversion d'images et GIF en ASCII art.

Conférence

Chiffrez vos données avec Doctrine, en restant recherchable

Jérôme Tamarelle — MongoDB

Retours : Blog JoliCode, Blog Webnet (Wajdi Bessassi), Blog Les-Tilleuls.coop, Mathieu Desnouveaux (sketchnote), Slides de Jérôme Tamarelle (speaker)

  • Point de départ : stocker email, date de naissance ou numéro de sécurité sociale en clair est un risque majeur en cas de fuite, mais le chiffrement applicatif empêche un simple WHERE email = :valeur (programme).
  • Les données indirectes comptent aussi : croisées, elles suffisent à identifier une personne (JoliCode).
  • Rappels de base : chiffrement réversible vs hashage irréversible, chiffrement aléatoire (deux valeurs identiques donnent deux chiffrés différents) vs déterministe (JoliCode).
  • Mise en œuvre : le chiffrement est encapsulé dans un type Doctrine, utilisable via les attributs ; chaîne de clés KMS, clé de chiffrement, base ; pour la recherche, des champs hashés servant de tags, hydratés par des listeners Doctrine (Les-Tilleuls.coop). Webnet évoque aussi la rotation des clés.
  • Dans les slides publiées par le speaker : AES-256-GCM plutôt que MD5, SHA-1 ou CRC32 ; « un hash sans clé pour des données identifiables (PII) est une faille de confidentialité » (d'où des HMAC) ; hiérarchie de clés (clé de données, clé maître, KMS), rotation de la clé maître tous les 6 à 24 mois, celle des clés de données seulement si nécessaire car elle impose de tout rechiffrer.
  • Toujours selon les slides : Doctrine MongoDB ODM propose un chiffrement natif (attribut Encrypt, requêtes d'égalité et de plage) ; côté ORM, le type DBAL ne s'applique ni au DQL/SQL brut ni aux résultats non typés. Et le chiffrement ne suffit pas : l'interface fuit aussi, d'où affichage au clic, restrictions d'accès, surveillance et rate limiting.
  • Leçon retenue : « Sécuriser ses données, c'est accepter de complexifier son application. Et surtout, le faire dès la conception » (JoliCode). Revers noté : on ne peut plus chercher sur ces champs sans passer par Doctrine.

Conférence

100 crons par seconde, le Scheduler se venge

Jérémie Augustin

Retours : Blog Webnet (Wajdi Bessassi), Blog Les-Tilleuls.coop, Mathieu Desnouveaux (sketchnote)

  • Retour d'expérience : d'un cron solitaire à un Scheduler Symfony distribué sur Kubernetes pilotant des centaines de tâches (programme).
  • Pièges annoncés et repris par Webnet : locks Symfony qui bloquent tout le scheduler, surprises du scaling horizontal, observabilité difficile.
  • Les-Tilleuls.coop retient que la migration a soulevé des problèmes de scalabilité à partir d'un certain volume, avec une solution temporaire à base d'event listeners pour avoir plusieurs workers.
  • Couverture mince : pas de détail chiffré dans les retours publics.

Conférence

Passez à la vitesse supérieure avec le JsonStreamer

Gary Pegeot

Retours : Blog Webnet (Wajdi Bessassi), Blog Les-Tilleuls.coop, Mathieu Desnouveaux (sketchnote)

  • Retour d'expérience : migration du Serializer vers le JsonStreamer pour indexer en masse des documents dans Elasticsearch (programme).
  • Principe : sérialiser à la volée plutôt que tout construire en mémoire, d'où une consommation mémoire faible et stable sur les traitements batch (Webnet).
  • Le JsonStreamer complète le Serializer sans le remplacer : le second reste adapté aux API courantes, le premier aux exports et synchronisations massives (Webnet).
  • Détails techniques retenus : attribut JsonStreamable et ObjectMapper pour hydrater des entités depuis un DTO, « gain de performances colossal » qui a « mis une claque à l'audience » (Les-Tilleuls.coop) ; « gain de performance x10 » annoncé (Desnouveaux).

Conférence

Développer un Coding Agent en PHP : dans les coulisses du « Harness »

Fabien Potencier — Symfony

Retours : Blog JoliCode, Blog ACSEO, Blog Webnet (Wajdi Bessassi), Blog Les-Tilleuls.coop, Blog SensioLabs, Mathieu Desnouveaux (sketchnote)

  • Thèse : le modèle n'est que la moitié de la solution, le « harness » (contexte, outils, prompts, boucles de rétroaction) fait la qualité du résultat (programme). Origine : un tweet affirmant qu'on ne pouvait pas faire de coding agent en PHP (JoliCode ; Potencier l'évoque aussi dans sa keynote).
  • Architecture retenue par JoliCode : interface avec le composant TUI, outil symfony/models-dev pour recenser les modèles disponibles, seulement 4 outils (Read, Write, Update, Bash), historique stocké sous forme d'arbre pour revenir en arrière, compression du contexte qui garde le premier message et les derniers et résume le reste.
  • Conseils pratiques : créer un skill dès qu'une instruction se répète, demander à l'agent un regard neuf (« fresh eyes ») quand il s'embrouille (JoliCode) ; le contexte compte plus que le prompt, résumer dans un SKILL.md avant de demander une feature (Les-Tilleuls.coop).
  • ACSEO décrit aussi son orchestrateur d'agents, baptisé Gérard, qui lance des agents en mode « YOLO » dans des conteneurs Docker aux sorties réseau limitées.
  • Mise en garde la plus citée : « dans 6 mois vous êtes morts », adressé à ceux qui font du vibe coding sans maîtrise du développement : sans cadrage ni relecture, la dette technique devient fatale (ACSEO).

Conférence

Du web au mobile avec Symfony & Hotwire Native

Imad Zairig

Retours : Blog JoliCode, Blog Webnet (Wajdi Bessassi), Mathieu Desnouveaux (sketchnote)

  • Promesse : livrer des applications iOS et Android natives à partir d'une application Symfony existante, sans Swift, Kotlin ni React Native (programme, Desnouveaux).
  • Présentation du bundle Symfony UX Native : webviews pilotées par Symfony, navigation et transitions gérées nativement ; exemple d'un bouton mobile dont le clic est écouté par Stimulus côté Symfony (JoliCode).
  • Limites notées par JoliCode : il faut parfois lancer le projet mobile avec Xcode, et les capacités natives (appareil photo) passent par des « Bridge Components » qui demandent du code mobile.
  • Verdict nuancé : « Selon la complexité de l'application et la taille de l'équipe, Symfony UX Native est une piste à explorer » (JoliCode) ; « prometteur, à tester dès que possible » (Desnouveaux).

Conférence

L'IA au service des devs : Anatomie d'un assistant de Code Review

Thomas Boileau — Yousign

Retours : Blog JoliCode, Blog ACSEO, Blog Webnet (Wajdi Bessassi), Mathieu Desnouveaux (sketchnote)

  • Contexte : faire évoluer la code review à l'échelle chez Yousign ; l'usage individuel de l'IA étant très inégal, intervenir au niveau de la CI plutôt que du poste de chaque développeur (JoliCode).
  • Fonctionnement : une PR étiquetée « Ready For Review » déclenche un webhook puis l'assistant ; socle Symfony Messenger, Webhook et AI, avec RabbitMQ et GitLab (programme, JoliCode).
  • Leçon d'adoption : après la première itération, « quasiment personne n'interagissait avec son agent » ; c'est en mesurant l'usage et en consultant les développeurs qu'une v2 utile a vu le jour (JoliCode).
  • Des « standards » que les développeurs enrichissent au fil des cas : la valeur tient autant à la connaissance consolidée qu'au gain de temps (ACSEO) ; pipeline « des findings structurés aux nouveaux standards » (Desnouveaux).
  • Pourquoi pas une solution du marché : contraintes réglementaires du secteur. Message répété : l'IA ne remplace pas l'humain, elle est un plus dans la boucle (JoliCode, ACSEO).

Conférence

Symfony + FrankenPHP : une DX comme vous n'en avez jamais vu

Kévin Dunglas — Les-Tilleuls.coop

Retours : Blog Webnet (Mathis Rome, article dédié), Blog Webnet (Wajdi Bessassi), Blog Les-Tilleuls.coop, Mathieu Desnouveaux (sketchnote), Slides et billet de blog de Kévin Dunglas (speaker)

  • Tout en direct : projet démarré en 3 secondes avec HTTPS, y compris nativement sous Windows sans WSL (programme, Webnet).
  • Hot reload côté backend : FrankenPHP surveille les fichiers, notifie le navigateur via Mercure et Idiomorph ne met à jour que ce qui a changé ; le mode worker, avec watch, sert désormais aussi en dev (Mathis Rome, Webnet).
  • Symfony Docker supporte les Dev Containers, avec Xdebug préconfiguré et des images rootless par défaut (Mathis Rome ; Les-Tilleuls.coop).
  • Moment fort : Claude Code piloté depuis un téléphone, codant dans un conteneur avec pare-feu et liste blanche de domaines (Packagist, GitHub) (Mathis Rome).
  • Version du speaker (slides « Coding at the Speed of Thought: The New Era of Symfony Docker » et billet du 31/03) : hot reload de FrankenPHP 1.11 qui surveille PHP, Twig, JS et CSS, Xdebug fonctionnel même en mode worker, Dev Containers compatibles VS Code, PhpStorm, Codespaces et Emacs, et Claude Code en mode « YOLO » dans un bac à sable dont le script de pare-feu n'autorise que Packagist et GitHub (speaker).
  • Côté participants : « le genre de démo qui donne envie de tout migrer en rentrant au bureau » (Mathis Rome) ; « une DX prête à l'emploi dans un binaire » (Desnouveaux). Kévin Dunglas est coopérateur des Tilleuls, dont le retour est donc interne.

Lightning talk

Lightning talks

Jérôme Tamarelle, Alexandre Daubois — Les-Tilleuls.coop, Imen Ezzine — SensioLabs, Alex Balmes

Retours : Blog Les-Tilleuls.coop (Alexandre Daubois, speaker), Blog SensioLabs

  • Vibe-coder des jeux dans le terminal avec Claude Code et le composant TUI dévoilé le matin (Snake, Space Invaders, un clone de RollerCoaster Tycoon) (Tamarelle, programme).
  • Ember, un « htop » pour PHP, Caddy et FrankenPHP écrit en Go : activité de chaque worker, latences P50/P90/P99, mode démon exposant des métriques Prometheus ; première release faite sur scène (Daubois, programme ; annonce reprise par Les-Tilleuls.coop (speaker)).
  • Un recorder natif dans Symfony HTTP Client : attribut #[UseRecorder] et quatre modes pour enregistrer puis rejouer les échanges HTTP en test, sans mocks écrits à la main (Ezzine, programme) ; « un des moments dont l'équipe est la plus fière » (SensioLabs, son employeur).
  • AWF (AI Workflow Framework) : machine à états en Go pilotée par YAML qui mêle étapes déterministes (git, linter, tests) et appels LLM, pour industrialiser le développement assisté plutôt que viser la vitesse (Balmes, programme).

Vendredi 27 mars

Conférence

Reconfigurer Symfony en temps réel avec des sidekicks applicatifs

Nicolas Grekas — Symfony

Retours : Blog Les-Tilleuls.coop, Blog SensioLabs, Mathieu Desnouveaux (sketchnote)

  • Nouveau pattern : des workers PHP long-running hors cycle HTTP, rendus possibles par FrankenPHP, qui écoutent leur environnement et reconfigurent l'application sans polling, sans TTL approximatif, sans redéploiement (programme).
  • Problème de départ : le coût d'une requête PHP qui doit solliciter de multiples services ; le sidekick écrit en mémoire, le script frontal lit sans appel externe (Les-Tilleuls.coop).
  • Exemple type : la découverte Redis Sentinel, le sidekick interroge la sentinelle et le code principal lit sa réponse ; autres cas cités au programme : rotation de secrets et de clés JWT, feature flags, invalidation de cache.
  • Suite annoncée : des sidekicks sous forme de bundles, PR FrankenPHP en cours de revue (Les-Tilleuls.coop). Desnouveaux y voit la possibilité de « reconfigurer une application en temps réel, sans redémarrage », inédite en PHP.

Conférence

Doctrine inheritance

Rémi Janot

Retours : Blog JoliCode, Blog Les-Tilleuls.coop, Mathieu Desnouveaux (sketchnote)

  • Clarification de vocabulaire : héritage (mapper une hiérarchie de classes) vs polymorphisme (une clé étrangère vers une autre classe) (JoliCode).
  • Tour des options : MappedSuperclass, DiscriminatorMap ; STI (une table, la plus performante mais pleine de colonnes nulles) vs CTI (une table par classe, schéma normalisé mais JOIN coûteux en lecture sur gros volumes) (Les-Tilleuls.coop).
  • Bonnes pratiques retenues : DiscriminatorMap explicite, valeurs d'enum, un seul niveau d'héritage, index sur les colonnes (Les-Tilleuls.coop, JoliCode).
  • Message rassurant : passer de STI à CTI reste assez facile, les choix ne sont pas figés (JoliCode).

Conférence

ClickHouse pour les développeurs Symfony

Romain Neutron

Retours : Blog JoliCode, Blog Les-Tilleuls.coop, Mathieu Desnouveaux (sketchnote)

  • Quand MySQL ou PostgreSQL atteignent leurs limites pour l'analytique, les logs ou les métriques, ClickHouse vient épauler la base principale, pas la remplacer (JoliCode).
  • Benchmarks sur des agrégations de plusieurs millions de lignes : des requêtes de plusieurs secondes deviennent quasi instantanées (JoliCode).
  • Pièges et bonnes pratiques : structure des données, choix du moteur de table (MergeTree) (JoliCode) ; stockage en blob storage évoqué au programme.
  • Lectures participants : « plutôt orienté observabilité » (Desnouveaux), « meilleure mise à l'échelle que le relationnel » (Les-Tilleuls.coop). JoliCode, qui l'utilise pour redirection.io, le recommande.

Conférence

JSON + SQL : hérésie ou élégance ? Retour d'expérience

Rémy Bonfils — Orange Business, Olivier Fourny — Orange Business

Retours : Blog JoliCode, Mathieu Desnouveaux (sketchnote)

  • Cas concret : une application mobile offline pour configurer des maisons imprimées en 3D, avec environ 80 000 configurations importées depuis un CSV (JoliCode).
  • Première piste, le modèle EAV : flexible mais sans structure (tout en varchar), requêtes complexes et performances catastrophiques (JoliCode).
  • Choix final : stocker les paramètres en colonnes JSON ; surprise, des performances « à peine inférieures à une modélisation classique » avec la flexibilité voulue, et des requêtes lisibles grâce aux fonctions SQL JSON (JoliCode). Encadrement côté Symfony par UDF DQL, DTO typés et validations (programme).
  • Clin d'œil : l'idée venait d'un talk de Grégoire Pineau au SymfonyLive 2022 (programme). JoliCode confirme utiliser et recommander le type JSON « lorsque le besoin s'en fait ressentir ».

Conférence

Embeddings en PHP : Symfony AI en pratique

Grégoire Pineau — JoliCode

Retours : Blog JoliCode (dont le speaker est co-auteur), Mathieu Desnouveaux (sketchnote), Slides de Grégoire Pineau (speaker)

  • Cas d'usage fil rouge : faire correspondre les URL d'un ancien et d'un nouveau site par similarité sémantique plutôt que par règles, pour générer un plan de redirections (JoliCode, Desnouveaux).
  • Pédagogie saluée : un schéma du processus réaffiché à chaque étape pour savoir où l'on en est (JoliCode).
  • Contenu : ce qu'est un embedding, choisir un modèle, vectoriser depuis Symfony, stocker et requêter les vecteurs (PostgreSQL, Redis, ClickHouse…), héberger son vectoriseur (Ollama, multi-GPU, RabbitMQ) (programme, JoliCode).
  • Slides du speaker (Speaker Deck, datées du 27/03/2026 mais étiquetées AFUP Day 2026, donc peut-être une version rejouée) : nettoyage agressif du HTML, découpage des longs contenus, renforcement du titre et des H1/H2 ; pgvector classé en tête pour le stockage, ClickHouse et MariaDB jugés plus lents ; distance cosinus pour le texte ; vectorisation lente, à confier à des workers Messenger et à un GPU en production.
  • Constat sur les modèles, toujours selon les slides : Gemini et OpenAI performent, Mistral déçoit, Qwen3 se distingue en open source ; un mauvais appariement vient de la qualité des embeddings ou du nettoyage, pas du calcul.
  • Message : tout se fait sans quitter l'écosystème Symfony grâce à Symfony AI. Retour à lire avec prudence : l'article JoliCode est co-signé par le speaker.

Conférence

Édition simultanée : facile avec Symfony UX

David Buchmann — Liip

Retours : Blog JoliCode, Mathieu Desnouveaux (sketchnote), Slides de David Buchmann (speaker)

  • Démonstration pas à pas de la suite Hotwire dans Symfony UX : Turbo (et Turbo Frames), puis Mercure intégré à FrankenPHP, puis des contrôleurs Stimulus qui écoutent les messages Mercure (JoliCode).
  • Mécanique résumée : le client envoie au serveur, qui diffuse, et la page se met à jour (Desnouveaux).
  • Dans les slides (en français) : Turbo Drive pour une expérience « single page app », Turbo Frames pour une modale de formulaire, Turbo Streams poussés via le hub Mercure (Server-Sent Events), un contrôleur Stimulus d'autosave ; pour l'édition simultanée, le speaker a choisi Mercure directement plutôt que les Turbo Streams, avec un listener Symfony qui publie chaque réponse modifiée.
  • Sécurité : par défaut tout le monde peut s'abonner à un topic Mercure ; messages private et JWT de publication et d'abonnement, que Symfony peut poser en cookie (slides).
  • Avantages mis en avant : la logique reste dans le backend, la sécurité est intégrée, le frontend se simplifie (JoliCode), moins de technologies et pas besoin d'experts React ou Vue (slides). Réserve du speaker lui-même : Stimulus « échec silencieux si noms ne correspondent pas » ; HTMX cité comme alternative.

Conférence

Les nouveaux design patterns IA avec Symfony

Titouan Galopin

Retours : Blog ACSEO, Blog SensioLabs, Mathieu Desnouveaux (sketchnote)

  • Cible : ceux qui ont expérimenté les LLM et veulent livrer des fonctionnalités IA fiables et testables en production (programme).
  • Problème posé : la nature non déterministe des LLM, on ne peut jamais garantir qu'ils n'hallucineront pas (ACSEO).
  • Réponse présentée : DSPy et l'algorithme GEPA (Genetic Pareto). Au lieu d'écrire le prompt parfait, on part d'une version simple et d'un dataset entrée/sortie attendue ; l'algorithme génère des variantes, les évalue et garde la meilleure (ACSEO, Desnouveaux).
  • Intérêt souligné : le dataset devient un filet contre les régressions quand le code ou le modèle change ; ACSEO y voit l'entrée de l'IA dans « une dynamique d'industrialisation ».

Sessions sans retour trouvé (6)

  • Formation : Sécurité améliorée avec Symfony (Florent Morselli, 24-25/03)
  • Formation : Maîtriser la POO et les patrons de conception (Alexandre Salomé)
  • Formation : Construisez un agent intelligent avec Symfony (Benjamin Zaslavsky)
  • Formation : Transformer une application MVC en DDD (Luc Sanchez)
  • Formation : Kubernetes deployment for Symfony (Tugdual Saunier, 2 jours)
  • Formation : Symfony 8: the fast track (Nicolas Grekas, 2 jours)

Sources