€0.00 — free as in speechtonight's forecast: clear skies over production Cache: warm · Deploys: fair, 0% rollbacks expectedset by moonlight, shipped before dawn · deploy freely Page A2

The Daily Commit The Nightly Build

Dev news, typeset daily — PHP · AI · The Wider Stack

The developer's evening paper — PHP · AI · The Wider Stack

mercredi 9 septembre 2026 Vol. I — No. 511 · Édition du matinÉdition du soir EN DE FR ES

PHP · RFC Watch

Ouverture du vote sur le drapeau PREG_THROW_ON_ERROR pour les fonctions preg_*

Le vote est ouvert sur un RFC PHP ajoutant un drapeau optionnel PREG_THROW_ON_ERROR aux fonctions preg_* : les erreurs PCRE seraient alors levées comme \PregException au lieu d'exiger preg_last_error().

sélectionné par Georg

Le scrutin se clôture le 18/09/2026 ; Tim Düsterhus figure parmi les premiers opposants.

La phase de vote du RFC PREG_THROW_ON_ERROR a débuté, annoncée par son auteur Osama Aldemeery sur la liste internals de PHP après une période de discussion sans points ouverts. Le vote se termine le 18/09/2026 à 17h00 UTC. Le RFC est disponible sur wiki.php.net/rfc/preg_throw_on_error et l'implémentation dans la pull request 22797 de php-src.

La proposition ajoute un drapeau optionnel PREG_THROW_ON_ERROR. Passé à n'importe quelle fonction de correspondance preg_*, il fait que chaque erreur PCRE enregistrée par l'appel est également levée sous forme de \PregException. Le code et le message de l'exception correspondent exactement à preg_last_error() et preg_last_error_msg(). Sans le drapeau, le comportement reste identique à aujourd'hui.

Tim Düsterhus a voté contre tout en étant d'accord avec le concept général. Il s'oppose au maintien d'un Warning pour les erreurs de compilation : la fonctionnalité étant nouvelle et optionnelle, il n'y a selon lui aucune contrainte de rétrocompatibilité, et la garantie que $e->getMessage() soit égal à preg_last_error_msg() affaiblit la fonctionnalité. L'exception devrait contenir toutes les informations nécessaires.

Il conteste aussi le fait que les exceptions levées dans les callbacks utilisateur ne soient pas encapsulées. À ses yeux, elles devraient devenir une \PregException avec l'exception d'origine en $previous. Sinon, il faut toujours un catch(Exception) autour de chaque appel preg_, ce qui annule l'intérêt d'une classe d'exception dédiée. Il souligne enfin que cela contredit la politique PHP sur les throwables, qui impose aux extensions d'encapsuler les exceptions externes et de renseigner $previous.

Lire la source originale (en anglais) ↗

Évaluer cet article : 0

Tribune des lecteurs

Pas encore de contributions — lance le débat.

The Daily CommitThe Nightly Build — Page A1