Die PHP-8.6-RFC-Saison endete diese Woche mit einer Abstimmungsrunde über 35 Vorschläge. Endergebnis: 31 angenommen, 4 abgelehnt.
Vier Vorschläge scheiterten. Die list()-Deprecation endete unentschieden 23–23 mit einer Enthaltung—exakt 50 Prozent—weit unter der erforderlichen Zweidrittelmehrheit. Das Reservieren der Schlüsselwörter in, out und inout scheiterte mit 8 zu 21. Der gettext-Alias _() überlebte mit 10 zu 22 gegen Deprecation. Der dechunk-Filter, während der Abstimmung umstritten, endete bei 18 zu 15 mit 12 Enthaltungen (54,5 Prozent) und bleibt in der Sprache.
Mehrere kritische Abstimmungen lösten sich von unsicheren Positionen. Das Reservieren von let passierte mit 24 zu 11 und 9 Enthaltungen (68,6 Prozent). Das Reservieren von is passierte deutlich mit 29 zu 10, trotz Bedenken zur Hamcrest-Testbibliothek mit 500 Millionen Installationen. Die define()-Entfernung der Groß-/Kleinschreibungsunempfindlichkeit passierte 41 zu 0 ohne Gegenstimmen.
Die letzten drei Abstimmungen der 8.6-Saison endeten 2–1. Caleb Whites Pipe-Zuweisungsoperator (|>=) wurde mit 14 ja, 12 nein, 7 Enthaltungen (53,8 Prozent) abgelehnt und verfehlte die Zweidrittelmehrheit. Nick Sdots readonly-Eigenschaftsstandards passierten einstimmig mit 24 zu 0 und 5 Enthaltungen. Khaled Alams const-Objekteigenschaften-Schreibvorgänge passierten mit 17 zu 2 und 6 Enthaltungen (89,5 Prozent).
Eine Implementierungsänderung kam spät. Ilija Tovilo aktualisierte das Closure-Optimierungs-RFC (24–0 in März). Der ursprüngliche Vorschlag umfasste zwei Features: einen Cache für zustandslose Closures und automatische Inferenz, um Closures als statisch zu markieren. Der Inferenzteil wurde nach einem Edge-Case entfernt: Ein Closure kann alle RFC-Regeln befolgen und trotzdem Instanzaufrufe über callable-Strings wie "Foo::instanceCall" in array_map machen. Tovilo erkannte das Versehen an und beschloss, nur den zustandslosen Closure-Cache zu mergen, der die meisten Leistungsgewinne bietet. Entwickler müssen Closures selbst als statisch markieren, um die volle Optimierung zu erreichen.
Der erste PHP-8.7-RFC wurde bereits eingereicht. Weilin Du schlug IntlRelativeDateTimeFormatter vor—ein Wrapper für ICUs locale-aware relative Zeit-Formatierung (z.B. "in 3 Tagen", "letzter Sonntag"). Die Diskussion drehte sich darum, ob es die neue Duration-Klasse akzeptieren sollte; Du argumentierte, dass Duration Stoppuhr-Zeit darstellt, während der Formatter Einheiten braucht (90 Minuten vs. 1,5 Stunden, Monate, Quartale), wodurch sie inkompatibel sind. Der Konstruktor erhielt bis Samstag einen optionalen NumberFormatter-Parameter.
Generics-Entwicklung läuft außerhalb des RFC-Prozesses. Carlos Granados teilte ein Pre-RFC auf Basis von Rob Landers' experimentellem reified-Branch und argumentierte, es verdiente tiefere Erkundung. Rob schlug vor, dem Community-Discord bei phpc.chat beizutreten statt isoliert zu arbeiten. Alexander Lisachenko postete unabhängig ein Userland-Proof-of-Concept, wo spezialisierte generische Klassen kompilierte Methodenbodys teilen und die Speicher-Belastung pro Spezialisierung reduzieren.
Liam Hammetts RFC für native Markup-Ausdrücke (JSX-artiges HTML in PHP) erhielt Validierung von T.J. L, dem XHP-Extensions-Maintainer, in seiner ersten Internals-Nachricht. Er bestätigte, dass statische Analyse-Tools benutzerdefinierte Syntax nicht parsen können—die größte XHP-Reibung—und stärkt damit den Fall für native Unterstützung. Er forderte drei Ergänzungen: Kontext-Weitergabe ohne Attribut-Threading, Inline-SVG-Unterstützung und merkte an, dass das Fallenlassen von Tag-Objekten Laufzeit-Validierung entfernt, die JSX hauptsächlich durch TypeScript umgeht.
Nebenthemen: Juris Evertovskis betonte, dass isset()-Ausdrücke in Klammern immer noch Warnungen auslösen, obwohl isset alles andere stille macht. Das did-you-mean-RFC wird nicht überstürzt—Jorg Sowa wird es nach Feature-Freeze fertigstellen. Sepehr Mahmoudi trat der Internals-Liste mit einem array_search_range-Vorschlag bei.
PHP 8.6 Beta 1 startet diese Woche und markiert den Soft Freeze. Die RFC-Saison ist beendet.
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.