Der wöchentliche PHP-Internals-Überblick vom 2. September 2026 umfasste 11 Themen. Das wichtigste: Luca Rodenhäuser untersuchte die Scanner-Regel, die einen PHP-Bezeichner in Bytes statt Zeichen definiert. Jedes Byte ab hex 80 wird akzeptiert, sodass $x gefolgt von einem geschützten Leerzeichen eine eigene, identisch aussehende Variable ist. Er schlug ein deklaratives Opt-in pro Datei vor und scannte die 250 meistinstallierten Packagist-Pakete; genau ein Bezeichner würde brechen.
Larry Garfield schlug vor, das Opt-in zu überspringen und die Regel in PHP 9 zu erzwingen, da 99,99 % der Entwickler nichts bemerken würden. Rodenhäuser wiederholte den Scan gegen die Top 5.000 Pakete. Eine halbe Million Dateien ergaben 1.447 Nicht-ASCII-Bezeichner, 91 % davon in math-php, wo Variablennamen die Formeln buchstabieren. Derick Rethans fragte, ob 13,7 KB Tabellen in jedem PHP-Prozess gerechtfertigt sind, Juliette Reinders Folmer fragte nach variablen Variablen, Rowan Tommins nach Ablehnung versus Normalisierung. Rodenhäuser teilte seinen Vorschlag in drei Teile: eine Diagnose, eine Wohlgeformtheitsregel und eine Konformitätsregel.
Nick Sdot eröffnete einen RFC zur Beendigung der PEAR-Unterstützung durch PHP. Nach dreimonatiger Sichtung früherer Diskussionen baute er einen statischen Mirror, damit das Kommandozeilenwerkzeug weiter funktioniert. Seine Begründung: PEAR ist teils defekt, voll Spam, kaum aktiv und unmaintained. Rowan Tommins unterstützte das. Sdot zählte 6 Pakete, die noch auf PEAR veröffentlichen, 3 davon PEAR-eigene Infrastruktur, 2 kürzlich als unmaintained markiert. Übrig bleibt genau ein unabhängiges gepflegtes Paket: Net_SMTP.
Sjoerd Langkemper kündigte eine Abstimmung an, damit octdec, hexdec, bindec und base_convert bei ungültiger Eingabe einen ValueError werfen. Tim Düsterhus widersprach: Unvertrauenswürdige Eingaben an diese Funktionen zu übergeben sei ein erwarteter Anwendungsfall, daher sei die Error-Hierarchie falsch; Entwickler wollten das Ergebnis abfangen können. Er zitierte die Coding-Standards-Policy, wonach die Error-Hierarchie nicht für Fehler verwendet werden darf, die im Normalbetrieb erwartet und abgefangen werden. Base-Konvertierung sei Parsing.
Sepehr Mahmoudis Array-Filterfunktion kehrte zurück, umbenannt in array_str_contains und auf PHP 8.7 ausgerichtet. Seifeddine Gmati nannte sie redundant; dieselbe Logik würde array_str_starts_with und Hunderte weitere Varianten rechtfertigen. Bruce Weirdan fragte, ob stattdessen der Closure-Overhead selbst behoben werden sollte, was jedes Builtin mit Callable beschleunigen würde. Mahmoudi räumte ein, dass ein Filter das ganze Array lesen muss statt beim ersten Treffer zu stoppen, und versprach statische Analyse über Packagist.
Die Debatte über maschinell geschriebene Listen-Mails wurde konkret, als Juris einen Leitfaden-Entwurf verfasste: Neulinge sollten ihre Nachrichten selbst verfassen, ganz ohne KI-Hilfe; perfektes Englisch sei nicht nötig. Er schrieb drei Absätze auf Lettisch, ließ sie maschinell übersetzen und schickte beide Versionen. Sepehr Mahmoudi gab zu, dass KI seine Antworten geschrieben hatte. Weilin Du bat, keine Namen mehr zu nennen; Yuya Hamada entschuldigte sich. Eine schriftliche Policy existiert nicht.
Théo Attali schlug eine Datumsformat-Konstante für Millisekunden mit abschließendem Z vor, passend zu JavaScripts toISOString, da DATE_RFC3339_EXTENDED einen numerischen Offset nutzt. Andreas Heigl, der die Extended-Konstanten hinzugefügt hatte, lehnte weitere ab und verwies auf einen Userland-Formatter, der seit PHP 5.3 funktioniert. Tim Düsterhus lenkte die Idee auf die neue Date-Time-API: PHP 8.6 liefert den ersten Baustein, und das vorgeschlagene zeitzonenlose Time\Instant wäre der natürliche Ort für eine Zulu-Format-Methode.
Riaan de Beer bot libxml-rs an, eine native Rust-Reimplementierung von libxml2, kompatibel auf C-ABI-Ebene. xmllint und xmlcatalog seien gegen libxml2 2.15.3 in 1.110 Tests byte-identisch. Er bat lediglich um einen experimentellen Testbuild. Die Liste stritt stattdessen über seine Behauptung, libxml2 sei seit Dezember 2025 unmaintained; Pierre verwies auf viele Commits seither, andere nannten neue Maintainer, von denen einer php-src direkt hilft.
Zur Frage, ob RFCs einen Userland-Polyfill liefern sollten, sagte Nicolas Grekas, jedes polyfillbare Feature lande ohnehin im symfony/polyfill-Monorepo, und die ausgelieferte Version weiche oft vom RFC ab; Polyfills bräuchten einen eigenen Workflow. Tim Düsterhus wies Larry Garfields Benchmarking-Argument zurück: Performance sei ein bewegliches Ziel, Stdlib-Erweiterungen müssten 15+ Jahre gepflegt werden, entscheidend seien Nützlichkeit und API-Design. PIE mache private Extensions so einfach wie nie.
Drei Releases in drei Tagen: Calvin Buckley veröffentlichte PHP 8.4.25 als Security-Release, Daniel Scherzer 8.5.10 als Bugfix, Matteo Beccati stellte 8.6.0beta2 zum Testen bereit. Nick Sdot antwortete auf den nameof-RFC mit dem Wunsch nach 8.7, auf eine Nachricht vom Mai 2023. Seit drei Wochen befindet sich kein RFC in der Abstimmungsphase.




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.