Il existe de nombreuses options de configuration (à placer dans le fichier /etc/php.d/xdebug.ini
) qui permettent de personnaliser les messages de Xdebug. Ce qui m'intéresse ici c'est de connaître la trace précise d'exécution de mon programme lorsqu'une exception survient car, par défaut, Xdebug ne m'affiche que les 2 ou 3 premières actions et la ligne de plantage. On pourrait activer l'option xdebug.show_exception_trace
mais celle-ci affiche la trace de toutes les exceptions, y-compris celles que vous capturez. Pour avoir quelque chose de plus propre, il est donc préférable de na pas définir l'option dans le fichier de configuration mais de l'activer en fonction des besoins avec la fonction ini_set
. Voilà par exemple comment je l'utilise dans une méthode qui transforme les erreurs en exceptions :
public static function errorHandler($errno, $errstr = '', $errfile = '', $errline = '')
{
if (error_reporting() & $errno) {
ini_set('xdebug.show_exception_trace', 1);
throw new \ErrorException($errstr, $errno, 0, $errfile, $errline);
ini_set('xdebug.show_exception_trace', 0);
}
return true;
}
Il y a sans doute une meilleure manière de faire.