Die am 8. Oktober 2026 veröffentlichte Übersicht zu PHP internals behandelte 13 Entwicklungen. Das wichtigste Update betrifft bcrypt. Sjoerd Langkemper verfolgt die RFC `bcrypt_max_password_length` nach Einwänden zur Rückwärtskompatibilität vorerst nicht weiter. Jeff Dafoe hatte das zugrunde liegende Problem in älterem PHP-Code gefunden und darauf mit erzwungenen Passwortänderungen reagiert.
Tim Düsterhus schlug vor, bcrypt-sha256 aus der Python-Passwortbibliothek Passlib zu übernehmen. Langkempers neue RFC ergänzt `PASSWORD_BCRYPT_SHA256`. Das Passwort wird zuerst mit HMAC-SHA-256 verarbeitet, sodass bcrypt einen 44 Byte langen Schlüssel ohne Nullbytes und ohne 72-Byte-Grenze erhält. Ein Beispiel akzeptiert ein 200 Zeichen langes Passwort und lehnt dasselbe Passwort mit einem Zeichen weniger ab. Der Algorithmus ist optional, die Standardeinstellung bleibt unverändert, und die RFC nennt keine Breaking Changes. Die Hashes sind mit Passlib kompatibel. Sie sind länger, daher benötigen Anwendungen möglicherweise breitere Datenbankspalten. Eine spätere Umstellung des Standards bleibt Zukunftsarbeit.
Zwei RFC-Abstimmungen sind geöffnet. Nick S. startete die Abstimmung zur End PEAR Project Endorsement RFC am Montag, nachdem er seinen geplanten Termin verpasst hatte. Der Vorschlag würde die PEAR-Website archivieren, den PEAR-Installer ab PHP 8.7 nicht mehr mitliefern und php.net auf Composer verweisen. Zum Zeitpunkt der Aufzeichnung stand es 26 zu 0, das Ende ist für den 19. Oktober angesetzt. Auch Weilin Dus `IntlRelativeDateTimeFormatter` steht erneut zur Abstimmung. Eine erste Abstimmung im September endete nach kurzer Zeit mit 4 zu 1. Die überarbeitete Fassung übernimmt Tim Düsterhus’ Enum-Entwurf, steht bei 7 zu 0 einschließlich Tims Stimme und läuft am 22. Oktober aus. Der Formatter erzeugt Ausdrücke wie „gestern“ oder „in 2 Wochen“.
Für den Vorschlag `Time\Instant` gibt es weiterhin kein festgelegtes JSON-Format. `json_encode` liefert derzeit ein leeres Objekt, und die Autoren Tim Düsterhus und Derick Rethans sehen die JSON-Erweiterung am richtigen Ort für eine Lösung. Eine 15 Punkte umfassende Prüfung änderte die Methoden von `getUnixTimestamp` zu `toUnixTimestamp`, machte `SystemClock` zum Singleton und ergänzte `DateTimeInterface::toInstant`, nachdem diese Methode zunächst übersehen worden war. Eine Umbenennung von `now()` wegen PSR-20 bleibt umstritten. Larry Garfield sieht in dem Vorschlag einen möglichen Nachfolger für PSR-20.
Pratik Bhujels Version 0.4 von Io\Terminal entfernt die in der vorherigen Fassung hinzugefügten Interfaces. Der Stream gilt als eigentliche I/O-Grenze, wodurch In-Memory-Streams für Tests der Terminaleingabe verwendet werden können. Für Schlüssel- und Geheimnisabfragen funktionieren nun skriptgesteuerte Streams, ein geforkter Prozess setzt das Terminal des Elternprozesses nicht mehr zurück, und für Insert und Shift-Tab gibt es neue Tastenwerte. Nach weiterer Prüfung möchte Pratik auf eine Abstimmung zugehen.
Matthieu Napolis RFC für eine einzelne Binärdatei würde FPM in die `php`-Binärdatei integrieren. Der Start wäre mit `--fpm` oder über einen Symlink möglich. Messungen mit Bref auf AWS Lambda ergaben ein um 18 Prozent kleineres komprimiertes Paket. Eine minimale FPM-Anwendung startete 70 Millisekunden schneller, was einer Verkürzung der Kaltstartzeit um 25 Prozent entspricht. Die Diskussion betrifft die Bedeutung von `-F`, die Rolle von FPM angesichts der wachsenden Verbreitung von FrankenPHP und Swoole sowie einen möglichen Ansatz, der die CLI in die FPM-Binärdatei einbettet.
Ilia unterzog die IO Hooks einer Sicherheitsprüfung und reproduzierte Abstürze in Jakub Zelenkas Branch. C-Code kann davon ausgehen, dass während eines blockierenden Wartens kein PHP-Code läuft. In einem Test gab ein Fiber ein DOM-Dokument frei, während ein anderes Fiber es noch speicherte. Ilia möchte, dass eingebundene Aufrufe standardmäßig blockieren und die Aufrufstelle ausdrücklich sichere Unterbrechungen kennzeichnet. Jakub bezeichnet den Branch als Proof of Concept und hält die Fehler für behebbar. Ein Designdokument deckt nun die drei zusammengehörigen RFCs ab. Sebastian Bergmann sieht eine Grundlage für die Steuerung von Kindprozessen in PHPUnit. Edmond Dantes testet die Arbeit mit seiner RFC für einen austauschbaren Scheduler.
Karoly Negyesis Delegation-Vorschlag würde Interface-Methoden an eine Property weiterreichen. Larry Garfield unterstützt ihn, nachdem Drupal-Abfrageklassen rund 100 Zeilen Weiterleitungscode angesammelt hatten. James Gilliland verwies auf Laravels Trait `ForwardsCalls`. Sebastian Bergmann warnte vor einer stillen Weiterleitung später zu einem Interface hinzugefügter Methoden. Fluent-Aufrufe würden außerdem das innere Objekt zurückgeben. Larry schlug dafür ein Mask-Schlüsselwort vor. Rowan Tommins verwies auf ähnliche Vorschläge, deren Sonderfälle die ursprüngliche Kurzform zunehmend kompliziert machen.
Die übrigen Meldungen sind kleiner. Weilin Du verschob den Array-Shorthand zurück auf einen Doppelpunkt, weil der Parser ihn von einem ternären Ausdruck unterscheiden kann. Juliette Reinders Folmer will die Deprecation des `b`-Präfixes für Strings ohne breiteres Interesse nicht weiterverfolgen. Daniel Scherzer bot C-Arbeit für die Deprecations-RFC von PHP 8.7 an. Muhammed Arshid wandelte seinen Filter-Vorschlag in Backed Enums namens `Filter\Filter` und `Filter\Flag` um. Derick Rethans möchte die Deprecation der standardmäßigen Eingabefilterung der Filter-Erweiterung zurücknehmen. Máté Kocsis strebt eine Abstimmung zur Manipulation von Query-Parametern an. David Carlier schlug eine auf ICU-Skeletten basierende Einheitenformatierung für `intl` vor, etwa für 5 Kilometer pro Stunde. PHP 8.6 RC3 war für den 8. Oktober geplant, die allgemeine Veröffentlichung für den 19. November.




Kommentare
Noch keine Kommentare — schreib den ersten.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.