====== 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. * [[http://demo.pxxo.net/widgets/demos/Error/|Exemple d'utilisation en ligne]] * [[fr:install|Installer]] ===== 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. - ''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 - ''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 - ''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 [[http://fr.php.net/manual/fr/function.error-log.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 [[http://fr.php.net/manual/fr/function.error-log.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);