Symfony 8.1 introduit la variable d'environnement FRANKENPHP_RESET_KERNEL pour résoudre un problème de fuite d'état dans les applications PHP fonctionnant en mode "worker" avec FrankenPHP. Ce mode maintient le processus PHP en vie entre les requêtes pour améliorer les performances, mais crée un risque que l'état de services persistants ne soit pas correctement réinitialisé, ce qui peut entraîner une incohérence ou une exposition involontaire de données entre les requêtes.
Traditionnellement, chaque requête HTTP dans PHP démarrait avec un environnement isolé, garantissant que l'état de l'application était remis à zéro. Le mode worker de FrankenPHP, quant à lui, réutilise le noyau et les services Symfony, offrant un gain de vitesse significatif mais introduisant le risque de propagation d'état non désiré si les services ne sont pas explicitement réinitialisés.
Pour pallier ce risque, Symfony propose l'interface ResetInterface qui permet aux services de vider leur état entre les requêtes. Cependant, cette approche dépend de la bonne implémentation par tous les services, y compris ceux de tiers ou le code hérité. FRANKENPHP_RESET_KERNEL agit comme une mesure de sécurité supplémentaire, garantissant que le noyau est réinitialisé automatiquement, ce qui renforce la robustesse et la sécurité des applications PHP en mode worker.