Pxxo_Widgets_Error

Permet d'afficher un message d'erreur proprement. Ce widget est un peu particulier car il remplace le widget en cours d'exécution qui vient de rencontrer une erreur en affichant à sa place le message d'erreur.

Paramètres

Nom Valeur par défaut Description
type E_USER_ERROR Le type de l'erreur à générer. Les types php sont réutilisés, cf plus bas pour la liste exaustive
message 'xxx' Le message à afficher dans la boite d'information lorsque l'erreur se produit

Les types des erreurs possibles sont :

  • E_USER_ERROR : Provoque l'arret du script et la génération d'une page d'erreur, le détail de l'erreur est masquée sauf si on est en mode debug
  • E_USER_WARNING : Provoque la création d'un message, le détail de l'erreur est masqué sauf si on est en mode debug
  • E_USER_NOTICE : Provoque la création d'un message, le détail de l'erreur est toujours affiché

Utilisation

Son utilisation est particulière car son instanciation ne se fait pas de manière classique (tableau de params, new, main ou putWidget). Il propose en fait plusieurs méthodes statiques qui se chargeront pour vous d'instancier le widget.

  1. Pxxo_Widgets_Error::trigger($msg, $typ = E_USER_ERROR) (cette méthode déclenchera systématiquement une erreur) :
    • $msg : le message à afficher
    • $typ : le type de l'erreur
  2. Pxxo_Widgets_Error::catch_pear($err, $typ = E_USER_ERROR) :
    • $err : si cette variable est de type Pear_Error, l'erreur sera déclenchée et le message d'erreur sera celui du message d'erreur de Pear
    • $typ : le type de l'erreur
  3. Pxxo_Widgets_Error::catch_false($err, $msg, $typ = E_USER_ERROR) :
    • $err : si cette variable vaut false, l'erreur sera déclenchée
    • $msg : le message à afficher en cas d'erreur
    • $typ : le type de l'erreur

Par ailleurs, la verbosité du message d'erreur qui s'affichera dépend de la valeur de la variable debug_level dans la config de pxxo. Voici les différents niveaux :

  • Pxxo_Config::set('debug_level', 0) : n'affichera pas le message passé en paramètre
  • Pxxo_Config::set('debug_level', 1) : affichera le message passé en paramètre (ou le message d'erreur pear dans le cas où catch_pear est utilisé)
  • Pxxo_Config::set('debug_level', 2) : affichera le message passé en paramètre ainsi qu'une trace de la pile d'exécution (backtrace)

Ce widget permet si besoin de stocker les erreurs en utilisant la fonction php error_log. Pour cela il est nécessaire de positionner les variables suivantes dans la config de pxxo :

  • error_log_type
  • error_log_destination
  • error_log_extras

Ces trois variables sont les 3 paramètres que la fonction php error_log attend. Pour les positionner il faut utiliser la méthode Pxxo_Config::set. Par exemple placez ceci avant l'instanciation de votre widget d'erreur :

Pxxo_Config::set('error_log_type', 1);
Pxxo_Config::set('error_log_destination', 'webmaster@monsite.fr');

Un email sera alors envoyé à webmaster@monsite.fr à chaque fois qu'une erreur est déclenchée.

Exemples

$f = '/tmp/monfichier';
$err = file_exists($f);
Pxxo_Widgets_Error::catch_false($err, "le fichier $f n'existe pas",
                                      E_USER_NOTICE);
$err = new PEAR_Error('une erreur de type PEAR_Error en WARNING');
Pxxo_Widgets_Error::catch_pear($err, E_USER_WARNING);
Pxxo_Widgets_Error::trigger('une erreur qui arrête tout', E_USER_ERROR);
fr/doc/pxxo_widgets_error.txt · Dernière modification: 2008/03/13 15:56 (édition externe)
 
 
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Powered by PHP Driven by DokuWiki
©2003-2008 Pxxo