Dans l’écosystème PHP, il y a un « avant » et un « après » FrankenPHP. Conçu par Kévin Dunglas et l’équipe Les-Tilleuls.co, ce serveur d’application moderne bouscule les standards établis depuis des décennies. En intégrant l’interprète PHP directement dans le serveur Caddy, FrankenPHP élimine les lourdeurs de communication entre les processus et simplifie radicalement le déploiement. Que vous soyez un développeur en quête de rapidité ou un ingénieur DevOps cherchant à simplifier ses images Docker, FrankenPHP est la pièce manquante de votre stack.
-
Moteur de recommandation de films avec Symfony : Kejja
Introduction On est tous passés par là. Netflix, Prime Video, Disney+… et toujours la même question : on regarde quoi ? S’engage alors un débat sans fin entre le scroll, des recommandations qui n’en sont pas vraiment, et un catalogue que chaque plateforme met en avant selon ses propres intérêts. Les recherches « IA »…
-
Symfony AI et OpenRouter : faire évoluer un SAV e-commerce avec un LLM
Introduction Dans cette V1, on pousse notre projet de SAV e-commerce un peu plus loin avec l’ajout de Symfony AI et d’un LLM accessible via OpenRouter. L’objectif : permettre à Bloppy de formuler des réponses plus naturelles et adaptées à la demande du client, pour améliorer l’expérience dans le chat. Dans la V0, les réponses…
-
FrankenPHP et Mercure : un SAV e-commerce entre IA et conseiller humain
Introduction Je suis revenu de l’API Platform Conference 2026 avec quelques idées à expérimenter. Parmi les sujets qui ont retenu mon attention : Mercure et les évolutions de sa version 1.0. De quoi me donner envie de reprendre mes expérimentations autour du temps réel avec Symfony et FrankenPHP. Si vous suivez le blog, vous vous…
-
API Symfony pour application mobile : le framework ne règle rien
Introduction Depuis le début de ce blog, je n’ai cessé de parler de Symfony, de PHP, d’IA, de projets qui tournent en local. Mais dans le fond, ce que j’ai toujours voulu faire, c’est de l’application native. Tout simplement parce que je vois ce domaine comme l’aboutissement de mon expérience de développeur web Symfony. J’y…
-
Test de charge FrankenPHP : ce que k6 a vraiment mesuré
Introduction Monter une infra qui tient la charge, c’est une série de décisions prises bien avant d’écrire la première ligne de scénario k6. Le runtime : share-nothing process-per-request, ou worker mode persistant ? L’hébergement : une machine qu’on grossit, ou des nœuds qu’on ajoute ? La session : sur le disque local, ou dans un…
Les question fréquentes :
103 Early Hints : Quel impact réel sur le LCP (Largest Contentful Paint) ?
FrankenPHP supporte nativement les Early Hints. En envoyant les liens de préchargement des assets (CSS, JS) avant même que la réponse HTML ne soit générée, on peut gagner plusieurs centaines de millisecondes sur le rendu critique.
Peut-on compiler un binaire statique incluant tout le code PHP ?
Oui, c’est l’une des prouesses de FrankenPHP via Go. On peut transformer une application PHP en un binaire unique auto-exécutable, incluant l’interprète, les extensions et le code source. Idéal pour des déploiements ultra-légers et sécurisés dans des environnements « distroless ».
Quelle est la plus-value de l’intégration native du protocole Mercure ?
En intégrant Mercure directement dans le binaire Caddy, FrankenPHP permet de pousser des mises à jour en temps réel vers les navigateurs sans avoir besoin d’un serveur de WebSocket séparé ou d’une infrastructure complexe.
Comment FrankenPHP gère-t-il l’isolation de la mémoire en Worker Mode ?
Contrairement au modèle « shared-nothing » classique de PHP, le Worker Mode maintient l’application en mémoire. Cela nécessite une attention particulière sur les fuites de mémoire (memory leaks) et la gestion de l’état (state) des services. Nous analysons ici comment réinitialiser vos conteneurs d’injection de dépendances entre chaque requête.