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.
| 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 :
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.
Pxxo_Widgets_Error::trigger($msg, $typ = E_USER_ERROR) (cette méthode déclenchera systématiquement une erreur) :Pxxo_Widgets_Error::catch_pear($err, $typ = E_USER_ERROR) :Pxxo_Widgets_Error::catch_false($err, $msg, $typ = E_USER_ERROR) :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 :
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 :
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.
$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);