Talk in French at Forum PHP 2026
Short URL: https://joind.in/talk/d8c03
(QR-Code (opens in new window))
La plupart des applications Symfony bufferisent tout : résultats Doctrine, objets sérialisés, JSON, exports... Puis elles construisent une réponse complète avant de l'envoyer au client. Ça fonctionne. Jusqu'au jour où ça ne fonctionne plus : mémoire qui explose, time-to-first-byte qui grimpe, exports qui tombent en production.
De plus, avec l'arrivée des LLM dans nos produits, cette approche montre encore plus ses limites. Quand un modèle met plusieurs secondes à générer sa réponse, attendre le return signifie afficher un spinner pendant tout ce temps. Le streaming n'est plus une optimisation back-end. C'est devenu le socle d'une expérience utilisateur moderne.
Dans ce talk, nous allons démonter une idée profondément ancrée dans nos applications : celle qu'une réponse doit être entièrement construite avant d'être envoyée. Nous repenserons le flux de données d'une application Symfony de bout en bout : StreamedResponse, encodage JSON incrémental avec le composant JsonStreamer, sources de données itérables avec Doctrine, Server-Sent Events et EventStreamResponse pour le temps réel.
Vous apprendrez à produire les données au fil de l'eau, alimenter des interfaces en direct, générer des exports de plusieurs millions de lignes et maintenir une consommation mémoire stable grâce aux outils déjà présents dans Symfony.
Comments
Comments are closed.