Configuration à l'exécution
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Nom | Défaut | Modifiable | Historique |
---|---|---|---|
error_reporting | NULL | PHP_INI_ALL | |
display_errors | "1" | PHP_INI_ALL | |
display_startup_errors | "0" | PHP_INI_ALL | |
log_errors | "0" | PHP_INI_ALL | |
log_errors_max_len | "1024" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. |
ignore_repeated_errors | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. |
ignore_repeated_source | "0" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. |
report_memleaks | "1" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. |
track_errors | "0" | PHP_INI_ALL | |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM in PHP <= 4.2.3. |
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Disponible depuis PHP 4.1.0. |
xmlrpc_error_number | "0" | PHP_INI_ALL | Disponible depuis PHP 4.1.0. |
docref_root | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.0. |
docref_ext | "" | PHP_INI_ALL | Disponible depuis PHP 4.3.2. |
error_prepend_string | NULL | PHP_INI_ALL | |
error_append_string | NULL | PHP_INI_ALL | |
error_log | NULL | PHP_INI_ALL |
Voici un éclaircissement sur l'utilisation des directives de configuration.
-
error_reporting
integer -
Fixe le niveau d'erreur. Ce paramètre est un entier, représentant un champ de bits. Ajoutez les valeurs suivantes pour choisir le niveau que vous désirez, telles que décrites dans la section Constantes pré-définies, et dans le fichier php.ini. Pour modifier cette configuration durant l'exécution du script, utilisez la fonction error_reporting(). Voyez aussi la directive display_errors.
En PHP 5.3 et suivants, la valeur par défaut est is
E_ALL
& ~E_NOTICE
& ~E_STRICT
& ~E_DEPRECATED
. Cette configuration n'affiche pas les alertes de niveauE_NOTICE
,E_STRICT
etE_DEPRECATED
. Vous devriez vouloir les afficher pendant vos développements. Avant PHP 5.3.0, la valeur par défaut étaitE_ALL
& ~E_NOTICE
& ~E_STRICT
. En PHP 4, la valeur par défaut estE_ALL
& ~E_NOTICE
.Note:
Activer le rapport d'erreur de niveau
E_NOTICE
durant le développement a des avantages. En terme de déboguage, les message d'alertes vous signalent des bogues potentiels dans votre code. Par exemple, l'utilisation de valeurs non initialisées est signalée. Il est aussi plus pratique pour trouver des coquilles, et, ainsi, gagner du temps. Les messages NOTICE vous signaleront aussi les mauvaises pratiques de codage. Par exemple $arr[item] doit toujours être écrit $arr['item'] car PHP va considérer "item" comme une constante, au premier abord. Si cette constante n'est pas définie, alors il va l'utiliser comme une chaîne.Note:
En PHP 5, un nouveau niveau d'erreur nommé
E_STRICT
est disponible. Avant la version 5.4.0 de PHP,E_STRICT
n'était pas inclus dansE_ALL
, aussi, vous deviez explicitement activer ce niveau d'erreur pour les versions < 5.4.0 de PHP. ActiverE_STRICT
pendant le développement peut être bénéfique. Les messages STRICT fournissent des suggestions qui peuvent vous aider pour trouver la meilleure façon d'adapter votre code afin d'obtenir une meilleure compatibilité ascendante, ainsi qu'une meilleure interopérabilité. Ces messages peuvent inclure des informations comme l'appel à des méthodes non-statiques de façon statique, la définition de propriétés dans une définition de classe compatible au lieu de les définir dans un trait utilisé, et avant PHP 5.3, quelques fonctionalités obsolètes peuvent émettre des erreursE_STRICT
comme l'assignement d'objets par référence lors de l'instanciation.Note: Les constantes PHP en dehors de PHP
L'utilisation des constantes PHP en dehors de PHP, comme dans le fichier httpd.conf, n'a pas de signification utile mise à part dans les cas où des valeurs entières sont nécessaires. Et depuis que les niveaux d'erreurs ont été ajoutés, la valeur maximale (pour
E_ALL
) devrait changer. Donc, à la place deE_ALL
, utilisez plutôt une valeur plus grande pour couvrir tous les octets, une valeur numérique comme 2147483647 (incluant toutes les erreurs, et non juste les erreurs de typeE_ALL
). -
display_errors
string -
Cette directive détermine si les erreurs doivent être affichées à l'écran ou non.
La valeur "stderr" envoie les erreurs vers stderr plutôt que vers stdout. La valeur est disponible depuis PHP 5.2.4. Dans les anciennes versions, cette directive était du type boolean.
Note:
C'est une directive nécessaire en développement mais qui ne doit jamais être utilisée sur un système en production. (e.g. systèmes connectés à Internet).
Note:
Bien que display_errors peut être défini en cours d'exécution (avec la fonction ini_set()), il n'aura aucun effet si le script a des erreurs fatales, car l'action désirée au moment de l'exécution ne sera pas exécutée.
-
display_startup_errors
boolean -
Même si display_errors est activé, des erreurs peuvent survenir lors de la séquence de démarrage de PHP, et ces erreurs sont cachées. Avec cette option, vous pouvez les afficher, ce qui est recommandé pour le déboguage. En dehors de ce cas, il est fortement recommandé de laisser display_startup_errors à off.
-
log_errors
boolean -
Indique si les messages d'erreur générés par les scripts devraient être journalisés dans le journal d'erreurs du serveur ou dans error_log. Cette fonction est spécifique aux serveurs.
Note:
Il est recommandé d'utiliser l'historique d'erreur, plutôt que d'afficher les erreurs sur les sites de production.
-
log_errors_max_len
integer -
Configure la taille maximale des erreurs qui seront enregistrées dans l'historique, en kilo octets. Dans les informations de error_log, l'origine est ajoutée. La valeur par défaut est de 1024. 0 signifie qu'il n'y a pas de limite de taille. Cette longueur est appliquée pour enregistrer dans l'historique les erreurs, afficher les erreurs et également à $php_errormsg mais pas pour les appels explicites aux fonctions comme error_log().
Lorsqu'un entier est utilisé, sa valeur est mesurée en octets. Vous pouvez également utiliser la notation sténographique comme décrit dans cette entrée de la FAQ.. -
ignore_repeated_errors
boolean -
Ne pas enregistrer des messages répétitifs. Les erreurs répétées doivent survenir au même moment, à la même ligne et depuis le même fichier de script, à moins que ignore_repeated_source soit défini à
TRUE
. -
ignore_repeated_source
boolean -
Ignore la source du message lors des messages répétés. Lorsque vous avez configuré cette option à On, vous n'enregistrerez pas les erreurs répétées provenant de fichiers et lignes de code différents.
-
report_memleaks
boolean -
Si ce paramètre est défini à On (par défaut), il affichera un rapport de fuite mémoire détectée par le gestionnaire de mémoire Zend. Ce rapport sera envoyé à stderr sur les plate-formes Posix. Sous Windows, il sera envoyé au débogueur en utilisant OutputDebugString(), et pourra être lu avec des outils comme » DbgView. Ce paramètre n'a d'effet que lors d'une compilation de débogage, et si error_reporting inclut
E_WARNING
dans sa liste autorisée. -
track_errors
boolean -
Si cette option est activée, le dernier message d'erreur sera placé dans la variable $php_errormsg.
-
html_errors
boolean -
Si activé, les messages d'erreur incluront les balises HTML. Le format des erreurs HTML produira des messages clickables qui redirigeront l'utilisateur vers une page décrivant l'erreur ou la fonction qui a causé l'erreur. Ces références sont affectées par docref_root et docref_ext.
Si désactivé, le message d'erreur sera rendu en texte plein.
-
xmlrpc_errors
boolean -
Si activé, désactive le rapport normal d'erreur et formate les erreurs comme des messages d'erreur XML-RPC.
-
xmlrpc_error_number
integer -
Utilisé comme valeur de l'élément XML-RPC faultcode.
-
docref_root
string -
Le nouveau format d'erreur contient une référence à une page décrivant l'erreur, ou la fonction ayant causé l'erreur. Pour le manuel, vous pouvez télécharger ce dernier dans votre langue, et configurer cette option pour qu'elle pointe sur lui. Si votre copie du manuel est accessible à "/manual/", vous pouvez simplement utiliser
docref_root=/manual/
. De plus, vous devez configurerdocref_ext
pour qu'elle corresponde aux extensions de votre manuel.docref_ext=.html
. Il est possible d'utiliser des références externes. Par exemple, vous pouvez utiliserdocref_root=http://manual/en/
oudocref_root="http://landonize.it/?how=url&theme=classic&filter=Landon&url=http%3A%2F%2Fwww.php.net%2F"
La plupart du temps, vous utilisez l'option docref_root avec un slash a la fin ("/"). Mais ce n'est pas obligatoire, comme le montre le second exemple ci-dessus.
Note:
Cette directive est destiné à vous aider dans votre développement en rendant facile la consultation de la description d'une fonction. Ne jamais l'utiliser sur un système de production (e.g. système connecté à Internet).
-
docref_ext
string -
Voir aussi docref_root.
Note:
La valeur de docref_ext doit commencer par un point ".".
-
error_prepend_string
string -
La chaîne à placer avant les messages d'erreur.
-
error_append_string
string -
La chaîne à placer après les messages d'erreur.
-
error_log
string -
Nom du fichier où seront enregistrées les erreurs. Le fichier doit être accessible en écriture par l'utilisateur exécutant le serveur web. Si la valeur spéciale syslog est utilisée, les erreurs seront envoyées au système d'historique du serveur. Sous Unix, cela correspond à syslog(3) et sous Windows à l'historique d'événement. Voir aussi : syslog(). Si cette directive n'est pas fixée, les erreurs sont envoyées au journal d'erreurs SAPI. Par exemple, s'il s'agit d'une erreur de journal dans Apache ou stderr dans CLI. Voir aussi la fonction error_log().
Version en cache
22/12/2024 09:00:15 Cette version de la page est en cache (à la date du 22/12/2024 09:00:15) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-errorfunc.configuration.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.