FrankenPHP 1.12.7 erschien am 7. August und behebt fünf Fehler sowie eine Dokumentationslücke.

Die wichtigste Korrektur betrifft den klassischen Modus ohne Worker. Bislang verschwanden Ausgaben spurlos, wenn ein Skript nach dem Aufruf von fastcgi_finish_request() oder frankenphp_finish_request() noch etwas ausgab. Da ignore_user_abort standardmäßig aktiv ist, wertete die Laufzeitumgebung ein späteres echo fälschlich als Hinweis auf einen Verbindungsabbruch und brach das Skript mittendrin ab. Kévin Dunglas schloss das Problem mit Pull Request #2569 und damit Issue #2548.

Erstbeitrag von @ousamabenyounes: Die Metrik frankenphp_total_threads zählte bislang nur hoch, statt die aktuelle Thread-Zahl zu melden, und stieg dadurch unbegrenzt. Sie funktioniert nun als echtes Gauge (#2550, behebt #2481).

@AlliBalliBaba entfernte den Restart-Hook bei Opcache-Invalidierung erneut. Ein Neustart bei jedem Opcache-Reset hätte bei Frameworks mit häufiger Cache-Invalidierung zu rekursiven Neustarts führen können (#2564).

Dunglas senkte außerdem das Log-Level für routinemäßige Schreib- und Flush-Fehler bei Client-Abbrüchen von Warn- auf Debug-Stufe und passte FrankenPHP damit an das Verhalten von Caddy und Mercure an. Die Meldungen tragen zudem nicht mehr die falsche Bezeichnung „not a flusher" (#2589).

Beim Build sorgt @henderkes dafür, dass go.sh die Umgebungsvariable PHP_CONFIG berücksichtigt (#2557). Die Dokumentation erklärt jetzt, warum die Wartezeit nach einem erzwungenen Kill unbegrenzt bleiben muss (#2577).

Der vollständige Changelog von v1.12.6 bis v1.12.7 steht auf GitHub bereit.