Présentation
CopixErrorHandler permet de surcharger le gestionnaire d'erreur par défaut fournit avec PHP (set_error_handler). Il dispose de plusieurs options de configuration, via la classe CopixErrorHandlerAction?.
Ce gestionnaire d'erreur est activé par défaut dans Copix et est présent dès la construction de l'objet CopixConfig?.
Lorsqu'une erreur survient, il est possible de configurer 3 éléments :
1) S'il faut lancer une exception de type CopixErrorHandlerException?
2) Le niveau de log (cf CopixLog) a générer concernant l'erreur
3) Le type d'élément à loguer (par défaut "errors")
Configuration
Vous pouvez définir pour chaque type d'erreur standard PHP l'action a réaliser. Cette définition se fait dans la variable errorHandlerActions de CopixConfig? qui est un tableau associatif avec comme clef les niveaux d'erreurs.
Ces niveaux sont :
- E_ERROR
- E_WARNING
- E_PARSE
- E_NOTICE
- E_CORE_ERROR
- E_CORE_WARNING
- E_COMPILE_ERROR
- E_COMPILE_WARNING
- E_USER_ERROR
- E_USER_WARNING
- E_USER_NOTICE
- E_STRICT
- E_RECOVERABLE_ERROR
Exemple d'utilisation dans copix.conf.php
$config = CopixConfig::instance (); $config->copixerrorhandler_actions = array ( // Les erreurs suivantes ne peuvent pas être prises en charge (cf. http://fr3.php.net/manual/en/function.set-error-handler.php) : // E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING E_WARNING => new CopixErrorHandlerAction (false, CopixLog::WARNING), E_NOTICE => new CopixErrorHandlerAction (false, CopixLog::NOTICE), E_USER_ERROR => new CopixErrorHandlerAction (true, CopixLog::ERROR), E_USER_WARNING => new CopixErrorHandlerAction (false, CopixLog::WARNING), E_USER_NOTICE => new CopixErrorHandlerAction (false, CopixLog::NOTICE), E_STRICT => new CopixErrorHandlerAction (false, CopixLog::NOTICE), E_RECOVERABLE_ERROR => new CopixErrorHandlerAction (false, CopixLog::WARNING) );
Il est également possible de définir une réaction par défaut pour les niveaux d'erreurs qui ne seraient pas explicitement configurés avec la variable errorHandlerDefaultAction.
Exemple de configuration dans copix.conf.php
$config = CopixConfig::instance (); $config->copixerrorhandler_defaultaction = new CopixErrorHandlerAction (true, CopixLog::ERROR);
