Das beherrschende Thema auf der PHP-Internals-Liste war diese Woche nicht Code, sondern Kommunikation. Die Abonnenten debattierten den Umgang mit Listenbeiträgen, die offenbar ganz oder teilweise von großen Sprachmodellen stammen. Rund 24 Nachrichten folgten. Gegen maschinelle Übersetzung erhob niemand Einwand, da Englisch für viele auf der Liste Zweit- oder Drittsprache ist. Der Widerspruch richtete sich gegen delegierte Autorenschaft von Argumenten und dagegen, dass LLM-Texte von außen kaum zuverlässig zu erkennen sind. Eine Richtlinie existiert noch nicht, aber ein Thread im Community-Discord unter phpc.chat arbeitet an Leitlinien.
Sepehr Mahmoudi eröffnete am Samstag ein neues RFC, kurz nachdem er sein vorheriges zurückgezogen hatte. Der Vorschlag array_match() soll ein Array nach Werten filtern, die einen Teilstring enthalten, in C implementiert, um Closure-Overhead zu vermeiden. Der Widerstand kam sofort. Yuya Hamada verwies auf array_filter(), auf gleichnamige, aber uneinheitliche Userland-Funktionen und auf das abgelehnte str_icontains-RFC. Tim Düsterhus merkte an, dass mit Partial Function Application in PHP 8.6 dasselbe Ergebnis ein Einzeiler ist, und Christian Schneider nannte preg_grep(). Ayesh Karunaratne argumentierte aus Profiling-Erfahrung mit Drupal, WordPress und anderen Codebasen, dass Array-Stringsuche nie ein Flaschenhals gewesen sei. Larry Garfield bezeichnete es als XY-Problem, und mickmackusa schlug vor, str_contains() polymorph zu machen wie str_replace(). Mahmoudi strich das Case-insensitive-Flag, benannte die Funktion in array_str_contain() um und zielte auf PHP 8.7, da 8.6 eingefroren ist. Bisher hat das RFC keinen einzigen Unterstützer.
Nick Sdot schlug eine Umstrukturierung des PHP-Internals-Buchs in php-src vor und konvertierte Seiten von reStructuredText nach Markdown in einem mechanischen Diff von 1.100 Zeilen. Ilija Tovilo, der das Buch aufgesetzt hatte, wandte ein, dass die Quelle weder das eine noch das andere Format ist, sondern MyST, und dass die Dokumentation nicht an der Syntax, sondern an fehlender investierter Zeit kranke. Nick stellte klar, dass ein alter Docs-Ordner, den er zusammenführen will, bereits Markdown ist, eine Konvertierung also in eine Richtung unvermeidbar ist. Der Pull Request bleibt offen.
Robert Chapin griff das Januar-RFC Deprecate Fuzzy Type Casts von Alexandre Daubois und Nicolas Grekas auf, das trotz ausbleibender Diskussion weiterhin auf 8.6 zielt. Er zeigte, dass die Migrationsbeispiele nicht tragen: is_numeric() liefert für den String "1.5" true und würde die Deprecation weiterhin auslösen, is_int() und is_float() liefern für jeden numerischen String false, und filter_var() garantiert keinen Integer. Seine Frage, ob Entwickler einen einzelnen Cast durch 8 Zeilen Code ersetzen sollen, blieb unbeantwortet.
Mahmoudi warf zudem eine Prozessfrage auf: Sollte die RFC-Vorlage für neue Funktionen ein Userland-Polyfill empfehlen? Ein Polyfill legt exaktes Verhalten samt Edge Cases fest, ohne dass jemand das C lesen muss, und gibt Projekten wie Symfonys Polyfill-Paketen einen Vorsprung. Garfield nannte eine Empfehlung ohne Pflicht vernünftig und ergänzte, dass ein Polyfill zugleich als Benchmark dient, um zu prüfen, ob eine C-Implementierung tatsächlich schneller ist.
Gina P. Banyard korrigierte Steven Wiltons bereits angenommenes SNMP-Improvements-RFC: Die Aussage, alle unterstützten PHP-Versionen zu bedienen, widerspricht der Patch-Release-Policy, die Änderungen landen daher nur in 8.6. Außerdem forderte sie, neue Integer-Konstanten als PHP-Enums umzusetzen, was die Typsicherheit im Userland verbessert und die C-Enums von SNMP abbildet. Ziel ist ein Merge rechtzeitig zu 8.6.0 beta 2.
Weilin Du, Maintainer der intl-Erweiterung, skizzierte Arbeiten, die er abgeben möchte: Konstanten in Enums umwandeln, Klassen namespacen, um Kollisionen zu vermeiden, Lücken zwischen PHP- und den zugrunde liegenden ICU-APIs schließen und das Error-Handling verbessern, das er unverblümt als schlecht und Ursache vieler dummer Bugs bezeichnete. Enums und Namespaces könnten ein 8.7-RFC werden. Yuya Hamada ergänzte, dass Rückmeldungen von Nutzern rechtsläufiger Sprachen branchenweit dünn sind, was für die Internationalisierungsqualität relevant ist.
Kurznotizen: Das array_search_range()-RFC der Vorwoche wurde offiziell zurückgezogen, nach einer 7-Punkte-Kritik von mickmackusa. Weilin Dus Vorschlag zur Groß-/Kleinschreibung von Erweiterungsnamen wird wegen des Widerspruchs eines Core-Entwicklers ein RFC, mit Abstimmung nach dem 8.6-Branch-Cut am 22. September. Und Neuling Zachary DuBois, dem man sagte, ein Pull Request genüge, reichte als ersten Beitrag Sodium-Bindings für die Post-Quanten-Verfahren X-Wing und ML-KEM-768 ein. In der zweiten Woche in Folge befand 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.