Lors du développement d'applications PHP, la gestion des erreurs est une partie importante de l'assurance de la stabilité du système. En capturant et en gérant rapidement les erreurs, les développeurs peuvent rapidement dépanner et résoudre les problèmes du programme pour assurer le fonctionnement fiable du système. Cet article introduira une technique pour envoyer des rapports d'erreur aux boîtes aux lettres de l'administrateur à l'aide de la fonction set_error_handler.
Tout d'abord, nous devons créer une fonction de gestion des erreurs personnalisée. Cette fonction attrapera une erreur PHP et enverra le message d'erreur à la boîte aux lettres de l'administrateur. Voici l'exemple de code:
<?php function sendErrorReport($errno, $errstr, $errfile, $errline) { $to = 'admin@example.com'; // Adresse e-mail de l'administrateur $subject = 'PHP Rapport d'erreur'; // Sujet par e-mail $message = "message d'erreur:[$errno] $errstr - $errfile:$errline"; // Détails d'erreur // Envoyer un e-mail if (mail($to, $subject, $message)) { return true; } else { return false; } } ?>
Le code ci-dessus définit un gestionnaire d'erreurs appelé SenderRorReport. Cette fonction reçoit le niveau d'erreur ($ errno), le message d'erreur ($ errstr), le fichier d'erreur ($ errfile) et le numéro de ligne d'erreur ($ errline) en tant que paramètres, et envoie le message d'erreur à la boîte aux lettres spécifiée par l'administrateur via la fonction de messagerie.
Ensuite, nous utilisons la fonction set_error_handler pour définir une fonction de gestion des erreurs personnalisée. Voici un exemple de code de la façon de le configurer:
<?php // 设置Rapport d'erreur级别 error_reporting(E_ALL); // Afficher l'erreur ini_set('display_errors', 1); // Définition de la fonction de traitement des erreurs set_error_handler('sendErrorReport'); ?>
Dans le code ci-dessus, nous définissons d'abord le niveau de rapport d'erreur sur E_ALL via la fonction Error_Reportting pour nous assurer que tous les types d'erreurs PHP sont capturés. Ensuite, nous activons la fonction d'affichage d'erreur via la fonction ini_set. Enfin, nous utilisons la fonction set_error_handler pour définir la fonction de gestion des erreurs personnalisée SenderRorReport comme fonction de traitement par défaut d'erreur.
À la fin du code, nous créons une erreur en sortie délibérément une variable non définie. À l'heure actuelle, le message d'erreur sera capturé par la fonction SENDERRORREPORT et envoyé à la boîte aux lettres de l'administrateur.
Il convient de noter que le jeu de fonction de gestion des erreurs à l'aide de set_error_handler ne peut attraper que des erreurs rapportées par PHP et ne peut pas attraper des erreurs de syntaxe ou des erreurs fatales. Pour ces types d'erreurs, les développeurs doivent toujours obtenir les détails en affichant le journal d'erreur PHP ou le journal du serveur.
De plus, pour garantir la fiabilité des rapports d'erreur, un traitement d'erreur supplémentaire est recommandé avant d'envoyer des rapports d'erreur. Par exemple, les informations d'erreur peuvent être enregistrées dans un fichier journal ou une base de données afin que les détails d'erreur puissent toujours être obtenus si l'e-mail est envoyé pour défaillance.
Cet article décrit des conseils sur la façon d'utiliser la fonction SET_ERROR_HANDLER de PHP 7 pour envoyer des rapports d'erreur aux boîtes aux lettres de l'administrateur. Grâce à des fonctions de traitement des erreurs personnalisées, les développeurs peuvent comprendre instantanément les erreurs dans l'application et les dépanner et les réparer rapidement, améliorant ainsi la stabilité et la fiabilité du système. J'espère que cette technique peut vous aider à améliorer le mécanisme de gestion des erreurs et à améliorer l'efficacité du développement.