Le vote de dépréciation massif pour PHP 8.6, composé de 35 scrutins, entre dans sa dernière semaine et se clôture lundi 10 août. La plupart des points passent aisément, mais certains sont disputés : la dépréciation de list() est à égalité parfaite 21-21, la réservation de let est à 22-11 (exactement les deux tiers requis), le filtre dechunk à 17-15, l'alias gettext _() échoue à 9-20 et la réservation de in/out/inout à 7-20. La dépréciation de metaphone passe à 19-6 malgré une correction documentaire : le paquet de remplacement suggéré, « linguistics », utilise lui-même le metaphone de php-src en interne ; son auteur Weilin Du a concédé le point tout en défendant l'abandon complet de cet algorithme vieillissant. Rowan Tommins a averti que réserver is entrerait en conflit avec le framework de test Hamcrest (500 millions d'installations Packagist), mais le vote mène 26-9. Sjoerd Langkemper, auteur de la proposition dechunk, a reconnu que la phase de discussion n'avait pas été correctement menée. Tim Düsterhus a aussi expliqué pourquoi on déprécie le paramètre mort de define() plutôt que de le supprimer : les arguments supplémentaires lèvent une ArgumentCountError, et la dépréciation explicite pour PHP 9 est plus propre.

Le RFC d'autoloading de fonctions de Paul M. Jones (cinquième génération) est passé au vote mais a été retiré en moins d'un jour : Tim Düsterhus a souligné que le scrutin enfreignait la règle, aucun message « intent to vote » n'ayant été posté dans les 7 jours précédents (l'avis de Jones datait de deux semaines, et une révision du 15 juillet avait remis le compteur à zéro). Le score au moment du retrait : 2 pour, 11 contre. Une annulation impose deux semaines de délai ; Jones reviendra après la sortie de 8.6. C'est le deuxième vote en deux semaines qu'un auteur interrompt lui-même à cause de la règle d'intention de vote.

Seifeddine Gmati a annulé la réouverture prévue de son RFC sur les types scalaires littéraux après que le release manager Matteo Beccati a précisé que la date limite effective est la création du tag beta 1 le 11 août, et non l'annonce du 13 août — un vote ouvert maintenant se terminerait trop tard. Le RFC vise désormais la prochaine version de PHP. Beccati s'est excusé pour ses e-mails ambigus et a estimé qu'il était mauvais de clore des votes si près du gel ; Pierre Joye a répondu que les phases bêta existent justement pour élargir les tests, tout en déplorant un calendrier annuel devenu très serré.

Deux scrutins en suspens ont été adoptés largement : la classe Time\Duration a clos à 35-1 (97 %), avec les noms de méthodes complets (multiplyBy, divideBy, negate, absolute) choisis à 30-2 — PHP 8.6 aura officiellement une classe Duration. Le RFC sur les versions minimales a également passé : autoconf 2.71 à 27-2 et COM_RESET_CONNECTION à 26-0. Alexander Kurilo a ensuite demandé le karma RFC pour proposer de rendre optionnel le nouveau comportement de réinitialisation de connexion, invoquant une rupture de BC non déclarée ; Ilija Tovilo a accordé le karma tout en soulignant la clarté du vote et l'échéance dépassée.

Trois scrutins restent ouverts : l'opérateur d'affectation pipe de Caleb White est à 12 pour, 10 contre, 6 abstentions (54,5 %, il faut les deux tiers) et se termine mardi ; les valeurs par défaut des propriétés readonly de Nick Sdot mènent 22-0 avec 5 abstentions, clôture vendredi ; l'écriture dans les propriétés d'objets const de Khaled Alam est à 14-2, clôture samedi.

Nouvelles discussions : Sjoerd Langkemper propose d'empêcher curl_setopt de faire fuiter des secrets dans les stack traces, avec trois options — marquer toutes les valeurs comme sensibles, apprendre à la fonction quelles options sont secrètes (au prix de performances du moteur), ou laisser l'appelant envelopper les secrets dans SensitiveParameterValue. Matthew Weier O'Phinney préfère l'opt-in, qualifiant la détection automatique de « jeu du tape-taupe ». Par ailleurs, la PR de Jorg Sowa ajoute des suggestions « did you mean » aux erreurs de fonctions indéfinies (comme en Python et Ruby) ; Sjoerd Langkemper a confirmé que les messages d'erreur échappent à la politique de BC, et Beccati a suggéré d'adopter le format de Python.

Le débat sur les génériques est officiellement suspendu jusqu'à après la sortie de 8.6 (septembre ou octobre), ce qui n'a pas empêché Henrik Skov de demander des génériques opt-in à effacement de type par crainte des coûts de performance, Holly Schilling plaidant pour les génériques monomorphisés, dont les performances égalent le code typé classique.

Le RFC PREG_THROW_ON_ERROR d'Osama Aldemeery a reçu sa première revue de conception : selon la politique des throwables de PHP, les exceptions d'extension doivent étendre la classe de base de leur extension. Osama prévoit une seule PregException, les détails d'un échec de compilation ne résidant aujourd'hui que dans le texte du warning ; avec le flag, un motif invalide déclenche à la fois le warning et l'exception, compromis transitoire qu'il assume.

Le jour des correctifs a livré les versions de sécurité 8.2.33, 8.3.33, 8.4.24 et 8.5.9, ainsi que PHP 8.6.0alpha3. Le gel souple de 8.6 intervient avec le tag beta 1 le mardi 11 août ; la beta 1 arrive le 13 août ; tous les votes de RFC 8.6 doivent être clos avant ; le gel dur suivra avec la RC 1 le 22 septembre.