PHP Erreur Fonctions
Introduction aux erreurs PHP
Les fonctions d'erreur sont utilisées pour gérer le traitement des erreurs et la journalisation.
Ces fonctions nous permettent de définir nos propres règles de gestion des erreurs et de modifier la manière dont celles-ci peuvent être enregistrées.
Les fonctions de journalisation nous permettent d'envoyer des messages directement à d'autres machines, par e-mail ou dans les journaux système.
Les fonctions de rapport d'erreurs nous permettent de personnaliser le niveau et le type de retour d'erreur qui est fourni.
Installation
Les fonctions d'erreur PHP font partie du noyau de PHP. Aucune installation n'est requise pour utiliser ces fonctions.
Configuration à l'exécution
Le comportement des fonctions d'erreur est influencé par les paramètres dans le fichier php.ini.
Options de configuration des erreurs et de journalisation :
| Nom | Par défaut | Description | Modifiable |
|---|---|---|---|
| error_reporting | NULL | Définit le niveau de rapport d'erreurs (soit un entier, soit des constantes nommées) | PHP_INI_ALL |
| display_errors | "1" | Spécifie si les erreurs doivent être affichées à l'écran ou si elles doivent être cachées à l'utilisateur. Remarque : Cette fonctionnalité ne doit jamais être utilisée sur des systèmes de production (uniquement pour soutenir votre développement) | PHP_INI_ALL |
| display_startup_errors | "0" | Même lorsque display_errors est activé, les erreurs qui se produisent pendant la séquence de démarrage de PHP ne sont pas affichées. Remarque : Il est fortement recommandé de garder display_startup_errors désactivé, sauf pour le débogage. | PHP_INI_ALL |
| log_errors | "0" | Définit si les messages d'erreur du script doivent être enregistrés dans le journal des erreurs du serveur ou dans error_log. Remarque : Il est fortement conseillé d'utiliser la journalisation des erreurs au lieu de l'affichage des erreurs sur les sites web de production. | PHP_INI_ALL |
| log_errors_max_len | "1024" | Définit la longueur maximale de log_errors en octets. La valeur "0" peut être utilisée pour ne pas appliquer de longueur maximale du tout. Cette longueur s'applique aux erreurs enregistrées, aux erreurs affichées, et également à $php_errormsg (disponible depuis PHP 4.3). | PHP_INI_ALL |
| ignore_repeated_errors | "0" | Spécifie s'il faut enregistrer les messages d'erreur répétés. Lorsqu'il est défini sur "1", il ne journalisera pas les erreurs répétées du même fichier sur la même ligne (disponible depuis PHP 4.3). | PHP_INI_ALL |
| ignore_repeated_source | "0" | Spécifie s'il faut enregistrer les messages d'erreur répétés. Lorsqu'il est défini sur "1", il ne journalisera pas les erreurs répétées provenant de fichiers ou de lignes de code différents (disponible depuis PHP 4.3). | PHP_INI_ALL |
| report_memleaks | "1" | S'il est défini sur "1" (la valeur par défaut), ce paramètre affichera un rapport des fuites de mémoire détectées par le gestionnaire de mémoire Zend (disponible depuis PHP 4.3). | PHP_INI_ALL |
| track_errors | "0" | S'il est défini sur "1", le dernier message d'erreur sera toujours présent dans la variable $php_errormsg. | PHP_INI_ALL |
| html_errors | "1" | Désactive les balises HTML dans les messages d'erreur. | PHP_INI_ALL PHP_INI_SYSTEM dans PHP <= 4.2.3. |
| xmlrpc_errors | "0" | Désactive le rapport normal des erreurs et formate les erreurs en tant que message d'erreur XML-RPC (disponible depuis PHP 4.1). | PHP_INI_SYSTEM |
| xmlrpc_error_number | "0" | Utilisé comme valeur de l'élément faultCode XML-RPC (disponible depuis PHP 4.1). | PHP_INI_ALL |
| docref_root | "" | (disponible depuis PHP 4.3). | PHP_INI_ALL |
| docref_ext | "" | (disponible depuis PHP 4.3.2). | PHP_INI_ALL |
| error_prepend_string | NULL | Spécifie une chaîne à afficher avant un message d'erreur. | PHP_INI_ALL |
| error_append_string | NULL | Spécifie une chaîne à afficher après un message d'erreur. | PHP_INI_ALL |
| error_log | NULL | Spécifie le nom du fichier où les erreurs de script doivent être enregistrées. Le fichier doit être accessible en écriture par l'utilisateur du serveur web. Si la valeur spéciale syslog est utilisée, les erreurs sont envoyées au journal système à la place. | PHP_INI_ALL |
Fonctions d'erreur et de journalisation PHP
| Fonction | Description |
|---|---|
| debug_backtrace() | Génère une trace de pile. |
| debug_print_backtrace() | Imprime une trace de pile. |
| error_clear_last() | Efface la dernière erreur. |
| error_get_last() | Renvoie la dernière erreur survenue. |
| error_log() | Envoie un message d'erreur à un journal, à un fichier ou à un compte de messagerie. |
| error_reporting() | Spécifie quelles erreurs sont rapportées. |
| restore_error_handler() | Restaure le gestionnaire d'erreurs précédent. |
| restore_exception_handler() | Restaure le gestionnaire d'exceptions précédent. |
| set_error_handler() | Définit une fonction de gestionnaire d'erreurs définie par l'utilisateur. |
| set_exception_handler() | Définit une fonction de gestionnaire d'exceptions définie par l'utilisateur. |
| trigger_error() | Crée un message d'erreur de niveau utilisateur. |
| user_error() | Alias de trigger_error() |
Constantes d'erreur et de journalisation prédéfinies PHP
| Valeur | Constante | Description |
|---|---|---|
| 1 | E_ERROR | Erreurs fatales à l'exécution. Erreurs dont on ne peut pas se remettre. L'exécution du script est arrêtée. |
| 2 | E_WARNING | Avertissements à l'exécution (erreurs non fatales). L'exécution du script n'est pas arrêtée. |
| 4 | E_PARSE | Erreurs de parsing à la compilation. Les erreurs de parsing ne doivent être générées que par le parseur. |
| 8 | E_NOTICE | Avis à l'exécution. Le script a trouvé quelque chose qui pourrait être une erreur, mais qui pourrait également se produire lors de l'exécution normale d'un script. |
| 16 | E_CORE_ERROR | Erreurs fatales au démarrage de PHP. C'est comme E_ERROR, sauf qu'elle est générée par le noyau de PHP. |
| 32 | E_CORE_WARNING | Erreurs non fatales au démarrage de PHP. C'est comme E_WARNING, sauf qu'elle est générée par le noyau de PHP. |
| 64 | E_COMPILE_ERROR | Erreurs fatales à la compilation. C'est comme E_ERROR, sauf qu'elle est générée par le moteur de script Zend. |
| 128 | E_COMPILE_WARNING | Erreurs non fatales à la compilation. C'est comme E_WARNING, sauf qu'elle est générée par le moteur de script Zend. |
| 256 | E_USER_ERROR | Erreur fatale générée par l'utilisateur. C'est comme E_ERROR, sauf qu'elle est générée dans le code PHP en utilisant la fonction PHP trigger_error(). |
| 512 | E_USER_WARNING | Avertissement non fatal généré par l'utilisateur. C'est comme E_WARNING, sauf qu'il est généré dans le code PHP en utilisant la fonction PHP trigger_error(). |
| 1024 | E_USER_NOTICE | Avis généré par l'utilisateur. C'est comme E_NOTICE, sauf qu'il est généré dans le code PHP en utilisant la fonction PHP trigger_error(). |
| 2048 | E_STRICT | Activez pour que PHP suggère des modifications à votre code qui garantiront la meilleure interopérabilité et compatibilité future de votre code (Depuis PHP 5 mais non inclus dans E_ALL jusqu'à PHP 5.4). |
| 4096 | E_RECOVERABLE_ERROR | Erreur fatale attrapable. Indique qu'une erreur probablement dangereuse s'est produite, mais n'a pas laissé le moteur dans un état instable. Si l'erreur n'est pas attrapée par un gestionnaire défini par l'utilisateur, l'application s'arrête comme si c'était une E_ERROR (Depuis PHP 5.2). |
| 8192 | E_DEPRECATED | Avis à l'exécution. Activez ceci pour recevoir des avertissements concernant le code qui ne fonctionnera pas dans les futures versions (Depuis PHP 5.3). |
| 16384 | E_USER_DEPRECATED | Message d'avertissement généré par l'utilisateur. C'est comme E_DEPRECATED, sauf qu'il est généré dans le code PHP en utilisant la fonction PHP trigger_error() (Depuis PHP 5.3). |
| 32767 | E_ALL | Activez toutes les erreurs et avertissements PHP (sauf E_STRICT dans les versions < 5.4). |