Afficher toutes les erreurs en PHP

Subodh Poudel 30 janvier 2023
  1. Utilisez la fonction error_reporting('E_ALL') et la fonction ini_set() avec la directive display_errors pour afficher une erreur d’avertissement
  2. Utilisez la fonction error_reporting('-1') et la fonction ini_set() avec les directives display_errors et display_startup_errors pour afficher l’erreur
  3. Modifier les directives dans le fichier php.ini pour afficher toutes les erreurs, y compris les erreurs d’analyse en PHP
Afficher toutes les erreurs en PHP

Nous allons introduire un moyen d’afficher les erreurs dans le script PHP en utilisant la fonction error_reporting() et la fonction ini_set(). La première méthode rapporte l’erreur tandis que la deuxième méthode remplace le fichier php.ini ou le fichier de configuration Apache et s’active pour afficher les erreurs du script courant uniquement.

Nous allons montrer une autre façon d’afficher les erreurs PHP en utilisant les mêmes fonctions - la fonction error_reporting() et la fonction ini_set() comme dans la première méthode. Le point critique qui différencie cette méthode de la première est qu’elle utilise une autre fonction ini_set() avec la directive display_startup_errors et la fonction error_reporting() prend une valeur entière comme argument.

Nous allons introduire une solution permanente pour afficher toutes les erreurs PHP, en modifiant la configuration dans le fichier php.ini. Les deux méthodes mentionnées ci-dessus n’aideront pas à afficher les erreurs d’analyse telles que les accolades et les points-virgules manquants.

Utilisez la fonction error_reporting('E_ALL') et la fonction ini_set() avec la directive display_errors pour afficher une erreur d’avertissement

Nous pouvons utiliser la fonction error_reporting() pour signaler tous les types d’erreurs dans le script PHP. Pour cela, nous utilisons la constante nommée E_ALL comme argument dans la fonction. Il signale toutes sortes d’erreurs PHP. Et puis, nous pouvons utiliser la fonction ini_set() pour afficher les erreurs rapportées. La fonction définit la directive display_errors sur true. Ainsi, il définit la configuration dans le fichier php.ini pour définir la visibilité des erreurs. Cependant, la valeur d’origine des directives sera restaurée dans le fichier php.ini après l’exécution du script courant.

Pour la démonstration, écrivez error_reporting(E_ALL) comme première ligne du code de script. Réglez display_errors sur 1 dans la fonction ini_set. Faites écho à un message comme 'This is a warning errorr'. Utilisez la fonction include() pour inclure un fichier externe appelé file.php. Exécutez ensuite le script.

L’exemple ci-dessous tente d’afficher une erreur d’avertissement en PHP. Ce type d’erreur indique qu’il y a un problème dans le script sans arrêter l’exécution du script. L’exemple inclut le fichier file.php dans le script. Puisqu’il n’y a pas de fichier de ce type dans le dossier racine, le script ne chargera pas le fichier et affichera les erreurs. Comme il s’agit d’une erreur d’avertissement, l’instruction echo accompagne les erreurs. Pour en savoir plus sur la fonction error_reporting(), veuillez consulter le manuel PHP

Exemple de code:

# php 7.*
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "This is a warning error";
include ("file.php");
?>

Production:

This is a warning error 
**Warning**: include(file.php): failed to open stream: No such file or directory in **/var/www/html/index.php** on line **5** 
 
**Warning**: include(): Failed opening 'file.php' for inclusion (include_path='.:/usr/share/php') in **/var/www/html/index.php** on line **5**

Utilisez la fonction error_reporting('-1') et la fonction ini_set() avec les directives display_errors et display_startup_errors pour afficher l’erreur

La fonction error_reporting() prend également une valeur entière comme argument. Nous pouvons utiliser cette méthode pour afficher les erreurs en PHP. Il existe de nombreux niveaux d’erreurs en PHP. Le niveau -1 désigne toutes les erreurs PHP. Passer la valeur -1 fonctionnera dans les futures versions de PHP, même avec de nouveaux niveaux et constantes. Parfois, la directive display_errors de la fonction ini_set() ne gère pas toujours les erreurs rencontrées au démarrage de PHP. Dans de tels cas, nous pouvons utiliser display_startup_errors pour afficher les erreurs.

Par exemple, définissez les direcitves de la fonction ini_set() comme display_startup_errors et display_errors. Définissez-les sur true en notant 1 dans la fonction ini_set(). Réglez error_reporting sur -1. Attribuez une valeur de 10 à une variable $a et affichez une variable $b.

Dans l’exemple ci-dessous, le script rencontre une erreur de notification. Le code tente d’imprimer la variable non définie. Pour en savoir plus sur la fonction ini_set(), veuillez consulter le manuel PHP.

Exemple de code:

#php 7.x
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
$a = 10;
echo $b;
?>

Production:

**Notice**: Undefined variable: b in **/var/www/html/index.php** on line **6**

Modifier les directives dans le fichier php.ini pour afficher toutes les erreurs, y compris les erreurs d’analyse en PHP

Nous pouvons modifier les directives dans le fichier php.ini pour afficher les erreurs PHP lorsque ce qui précède ne fonctionne pas. Le fichier php.ini contient les configurations par défaut nécessaires à l’exécution d’un script PHP. Les méthodes mentionnées ci-dessus ne modifient la valeur des directives qu’au runtime tandis que la modification du fichier php.ini change définitivement les valeurs. Cependant, nous ne devons pas suivre cette pratique au niveau de la production. Consultez le manuel PHP pour en savoir plus sur le fichier de configuration en PHP.

Pour changer la valeur des directives du fichier php.ini, localisez d’abord le fichier dans votre système. Utilisez le script suivant.

#php 7.x
<?php
phpinfo();
?>

Localisez Loaded Configuration File, et vous pouvez voir l’emplacement du fichier php.ini. Dans le fichier, localisez les directives display_errors et display_startup_errors et changez la valeur en on. Localisez error_reporting et changez en error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING. Ensuite, redémarrez le serveur Web Apache.

Par exemple, dans le fichier PHP, définissez le error_reporting(-1). Attribuez une valeur Orange à la variable $a mais n’écrivez pas de point-virgule après celle-ci. Imprimez la variable sur une autre ligne.

Dans la section de sortie de l’exemple de code, l’erreur d’analyse est rencontrée et affichée. Ainsi, la configuration du fichier php.ini peut également afficher les erreurs d’analyse.

Exemple de code:

#php 7.x
<?php
error_reporting(-1);
$a = "Orange"
echo $a;
?>

Production:

**Parse error**: syntax error, unexpected 'echo' (T_ECHO) in **/var/www/html/index.php** on line **6**
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

Article connexe - PHP Error