The Daily Commit · Ressort-Ausgabe Titelseite PHP AI Dev EN DE FR ES

The Php Times

Releases — Ökosystem

FrankenPHP 1.12.7 behebt verlorene Ausgabe nach finish_request()


FrankenPHP 1.12.7 ist erschienen.

FRANKENPHP RELEASES, 4. September 2026 kuratiert von Sönke

Das Patch-Release behebt einen Fehler im Classic-Modus, bei dem Ausgaben nach fastcgi_finish_request() still verworfen wurden, korrigiert eine Thread-Metrik, reduziert Logging bei Client-Abbrüchen und entfernt einen Opcache-Neustart-Hook.

FrankenPHP 1.12.7 behebt verlorene Ausgabe nach finish_request()
Screenshot: FrankenPHP Releases ↗

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.

Originalquelle lesen (Englisch) ↗

Artikel bewerten: 0

Leserforum

Noch keine Beiträge — eröffne die Debatte.

← Ökosystem — Page B1

"All the Code That's Fit to Ship" · The Daily Commit · Bildschirm-Ausgabe · Impressum · Datenschutz