Pour définir un gestionnaire d’erreurs personnalisé en PHP (il faut en avoir l’intérêt, car le système par défaut peut permettre déjà pas mal d’utilisations intéressantes), on utilise la fonction set_error_handler() dont voici la signature : mixed set_error_handler ( callback $error_handler [, int $error_types= E_ALL | E_STRICT ] )
On remarque le callback en premier argument, j’ai toujours imaginé y préciser une fonction, surtout que dans le cas de set_error_handler() la description des arguments enfonce le clou :
La fonction utilisateur doit accepter deux paramètres : le code d’erreur et une chaîne décrivant le code d’erreur.
Mais on peut aussi utiliser une méthode d’un objet (ce à quoi je n’avais jamais prêté attention).
Une méthode d’un objet instancié est passée comme étant un tableau, contenant un objet à l’index 0 et le nom de la méthode à l’index 1.
On se retrouve donc avec la possibilité de faire :
class Error{
public function errorHandle()
{
//do some stuff
}
}
$myErr = new Error('myrtilles');
set_error_handler(array($myErr, 'errorHandle'));
Vous le saviez, je parie ?

3 septembre 2009 at 19:00
L’excellent Julien Pauli (que tu a la chance de bien connaitre j’imagine) à d’ailleurs écrit un tutoriel à sa mesure à ce sujet :
http://julien-pauli.developpez.com/tutoriels/php/observer-spl/
Si mes souvenirs sont bon, on retrouve aussi un petit chapitre dédié à cette fonction dans le livre “PHP5 Avancé” (édition Eyrolles).