€0.00 — free as in speechtonight's forecast: clear skies over production Cache: warm · Deploys: fair, 0% rollbacks expectedset by moonlight, shipped before dawn · deploy freely Page A2

The Daily Commit The Nightly Build

Dev news, typeset daily — PHP · AI · The Wider Stack

The developer's evening paper — PHP · AI · The Wider Stack

mercredi 9 septembre 2026 Vol. I — No. 511 · Édition du matinÉdition du soir EN DE FR ES

PHP · Versions

FrankenPHP 1.12.7 corrige la perte de sortie après finish_request()

FrankenPHP 1.12.7 est disponible.

sélectionné par Sönke

Ce correctif résout un bug du mode classique où la sortie émise après fastcgi_finish_request() était silencieusement perdue, corrige une métrique de threads, réduit les logs de déconnexion client et retire un hook de redémarrage lié à l'opcache.

FrankenPHP 1.12.7 corrige la perte de sortie après finish_request()
Capture d’écran : FrankenPHP Releases ↗

FrankenPHP 1.12.7 est sorti le 7 août et règle cinq bugs, en plus d'un ajout à la documentation.

Le correctif principal vise le mode classique, sans worker. Auparavant, toute sortie écrite après l'appel de fastcgi_finish_request() ou frankenphp_finish_request() disparaissait sans avertissement. Comme ignore_user_abort est activé par défaut, le runtime interprétait un echo tardif comme la preuve d'une déconnexion et interrompait le script en plein milieu. Kévin Dunglas a réglé cela via la pull request #2569, ce qui clôt l'issue #2548.

Premier apport de @ousamabenyounes : la métrique frankenphp_total_threads s'accumulait au lieu de refléter le nombre réel de threads actifs, et grimpait sans fin. Elle fonctionne désormais comme une vraie jauge (#2550, corrige #2481).

@AlliBalliBaba a de nouveau retiré le hook qui redémarrait le runtime à chaque invalidation de l'opcache. Un redémarrage systématique à chaque reset aurait pu provoquer des redémarrages récursifs en cascade chez les frameworks qui invalident leur cache fréquemment (#2564).

Dunglas a par ailleurs fait passer les erreurs d'écriture et de flush liées aux déconnexions client du niveau warn au niveau debug, alignant FrankenPHP sur les pratiques de Caddy et Mercure. Ces messages ne portent plus l'étiquette erronée « not a flusher » (#2589).

Côté build, @henderkes a fait en sorte que go.sh tienne compte de la variable d'environnement PHP_CONFIG (#2557). La documentation explique désormais pourquoi l'attente suivant un force-kill doit rester illimitée (#2577).

Le changelog complet, de v1.12.6 à v1.12.7, est disponible sur GitHub.

Lire la source originale (en anglais) ↗

Évaluer cet article : 0

Tribune des lecteurs

Pas encore de contributions — lance le débat.

The Daily CommitThe Nightly Build — Page A1