Die 35 Abstimmungen umfassende Mass-Deprecation-Abstimmung für PHP 8.6 geht in die letzte Woche und endet am Montag, den 10. August. Die meisten Punkte passieren deutlich, einige sind umstritten: Die Deprecation von list() steht unentschieden bei 21:21, das Reservieren von let bei 22:11 (exakt die nötige Zweidrittelmehrheit), der dechunk-Filter bei 17:15, der gettext-Alias _() scheitert mit 9:20 und das Reservieren von in/out/inout mit 7:20. Die metaphone-Deprecation passiert mit 19:6, obwohl eine Dokumentationskorrektur anmerkte, dass das vorgeschlagene Ersatzpaket "linguistics" intern ebenfalls php-srcs metaphone nutzt; Antragsteller Weilin Du räumte den Doku-Punkt ein, will aber den veralteten Algorithmus insgesamt abschaffen. Rowan Tommins warnte, dass das Reservieren von is mit dem Testframework Hamcrest (500 Millionen Packagist-Installationen) kollidieren würde, doch es führt mit 26:9. Dechunk-Antragsteller Sjoerd Langkemper räumte ein, die Diskussionsphase sei nicht ordentlich abgeschlossen worden. Tim Düsterhus erklärte zudem, warum man den toten Parameter von define() deprecatet statt löscht: Zusätzliche Argumente werfen einen ArgumentCountError, die explizite Deprecation für PHP 9 sei sauberer.

Paul M. Jones' Function-Autoloading-RFC (fünfte Generation) ging zur Abstimmung, wurde aber innerhalb eines Tages zurückgezogen: Tim Düsterhus wies darauf hin, dass die Abstimmung gegen die Richtlinie verstieß, da in den vorangegangenen 7 Tagen keine "intent to vote"-Nachricht gepostet worden war (Jones' Mitteilung war zwei Wochen alt, eine Revision vom 15. Juli hatte die Frist zusätzlich zurückgesetzt). Der Stand bei Rückzug: 2 Ja, 11 Nein. Eine Absage bedeutet zwei Wochen Sperrfrist; Jones will nach dem 8.6-Release zurückkehren. Es ist die zweite Abstimmung in zwei Wochen, die ein Autor selbst wegen der Intent-to-Vote-Regel stoppte.

Seifeddine Gmati strich die geplante Neuabstimmung seines Literal-Scalar-Types-RFC, nachdem Release-Manager Matteo Beccati klargestellt hatte, dass die entscheidende Frist die Erstellung des Beta-1-Tags am 11. August ist, nicht die Ankündigung am 13. August — eine jetzt eröffnete Abstimmung würde zu spät enden. Der RFC zielt nun auf die nächste PHP-Version. Beccati entschuldigte sich für missverständliche Mails und kritisierte, dass RFC-Abstimmungen so nah am Freeze enden; Pierre Joye konterte, Beta-Phasen seien genau für breitere Tests da, und beklagte den knappen Jahreskalender.

Zwei Alt-Abstimmungen passierten eindrucksvoll: Die Time\Duration-Klasse schloss mit 35:1 (97 %), voll ausgeschriebene Methodennamen (multiplyBy, divideBy, negate, absolute) gewannen mit 30:2 — PHP 8.6 erhält offiziell eine Duration-Klasse. Auch der Minimum-Supported-Versions-RFC passierte: autoconf 2.71 mit 27:2, COM_RESET_CONNECTION mit 26:0. Alexander Kurilo beantragte daraufhin RFC-Karma, um das neue Verbindungs-Reset-Verhalten optional zu machen — er sieht einen nicht deklarierten BC-Bruch; Ilija Tovilo gewährte das Karma, verwies aber auf das klare Abstimmungsergebnis und die abgelaufene Frist.

Drei Abstimmungen laufen noch: Caleb Whites Pipe-Assignment-Operator steht bei 12 Ja, 10 Nein, 6 Enthaltungen (54,5 %, nötig sind zwei Drittel) und endet Dienstag; Nick Sdots Readonly-Property-Defaults stehen bei 22:0 mit 5 Enthaltungen und enden Freitag; Khaled Alams Const-Object-Property-Writes liegen bei 14:2 und enden Samstag.

Neue Diskussionen: Sjoerd Langkemper will verhindern, dass curl_setopt Geheimnisse in Stacktraces preisgibt, mit drei Optionen — Werte pauschal als sensibel markieren, der Funktion beibringen, welche Optionen geheim sind (mit Performance-Kosten in der Engine), oder Aufrufer hüllen Geheimnisse in SensitiveParameterValue. Matthew Weier O'Phinney favorisiert Opt-in und nannte automatische Erkennung ein "Whack-a-Mole-Spiel". Zudem ergänzt Jorg Sowas PR "Did you mean"-Vorschläge bei Fehlern für undefinierte Funktionen (wie in Python und Ruby); Sjoerd Langkemper bestätigte, dass Fehlermeldungen nicht der BC-Richtlinie unterliegen, und Beccati schlug Pythons Nachrichtenformat vor.

Die Generics-Diskussion ist offiziell bis nach dem 8.6-Release pausiert (September oder Oktober), dennoch fragte Henrik Skov nach opt-in, typ-gelöschten Generics aus Performance-Sorge, während Holly Schilling für monomorphisierte Generics warb, die die Performance normalen typisierten Codes erreichen.

Osama Aldemeerys PREG_THROW_ON_ERROR-RFC erhielt erste Design-Reviews: Laut PHP-Throwables-Richtlinie müssen Extension-Exceptions von der eigenen Basisklasse der Extension erben. Osama plant eine einzige PregException, da Compile-Fehler-Details derzeit nur im Warning-Text stecken; unter dem Flag wirft ein fehlerhaftes Pattern sowohl Warning als auch Exception, was er als Übergangslösung verteidigte.

Am Patchtag erschienen Sicherheitsreleases 8.2.33, 8.3.33, 8.4.24 und 8.5.9 sowie PHP 8.6.0alpha3. Der 8.6 Soft Freeze beginnt mit dem Beta-1-Tag am Dienstag, den 11. August; Beta 1 folgt am 13. August; alle 8.6-RFC-Abstimmungen müssen vorher geschlossen sein; der Hard Freeze folgt mit RC 1 am 22. September.