La RFC: Exceptions in the engine visait à généraliser l’utilisation d’exceptions dans le moteur PHP ainsi qu’à transformer en exceptions la plupart des erreurs fatales, ce afin de laisser aux applications la possibilité de contrôler ces erreurs.

Cette RFC introduisait pour cela deux nouveaux types d’exceptions :

  • EngineException : type d’exception générique générée par le moteur PHP
  • ParseException : exception générée lorsque le code PHP ne peut être traité

À cela s’ajoute une classe de base, abstraite, BaseException, qui viendrait se mettre en place dans la hiérarchie des exceptions comme suit :

BaseException (abstract)
 +- EngineException
 +- ParseException
 +- Exception
     +- ErrorException
     +- RuntimeException
         +- ...
     +- ...

Les blocs attrapant les exceptions de type Exception n’attraperaient pas ces nouvelles exceptions, ne générant ainsi aucun effet de bord côté utilisateur.

Il est ressorti de nos échanges que nous étions en très large majorité en faveur de cette RFC et avons donc posté en ce sens sur internals@.

Avec 60 voix pour et seulement 2 contre, cette RFC a été accepté et sera mise en place dans la version 7 de PHP.