RFC: Allow error_handler callback parameters to be passed by reference

La RFC: Allow error_handler callback parameters to be passed by reference avait pour objectif de permettre aux gestionnaires d’erreurs configurés via set_error_handler() de modifier les informations de l’erreur gérée, en passant ses valeurs par référence.

L’objectif était de pouvoir y passer des informations contextuelles de type identifiant stocké en session, URL parcourue lors de l’erreur, etc. de la manière suivante:

$_SESSION['username'] = 'john';
 
function myErrorHandler($errno, &$errstr, $errfile, $errline)
{
  if (isset($_SESSION['username'])) {
    $errstr .= ', username: '.$_SESSION['username'];
  }
  return false; // continue normal error handler
}
 
set_error_handler('myErrorHandler');

La RFC n’a pas convaincu et nos avis furent tous négatifs, principalement dû au fait que cette gestion pouvait être très facilement déléguée à la fonction utilisateur sans forcément avoir recours à des paramètres passés par référence. Nous avons donc posté en ce sens sur internals@.

La RFC proposait deux choix possibles : passer uniquement le message d’erreur par référence, ou bien l’ensemble des paramètres. Quoi qu’il en soit, avec 19 voix contre et 4 pour, la RFC a été rejetée.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *