"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je détecter les erreurs fatales en PHP en utilisant `register_shutdown_function()` ?

Comment puis-je détecter les erreurs fatales en PHP en utilisant `register_shutdown_function()` ?

Publié le 2025-01-24
Parcourir:812

How Can I Catch Fatal Errors in PHP Using `register_shutdown_function()`?

Détecter les erreurs fatales PHP avec register_shutdown_function

En PHP, set_error_handler() est utile pour gérer la plupart des erreurs. Cependant, il ne peut pas capturer les erreurs fatales telles que celles provoquées par l’appel de fonctions inexistantes. Pour résoudre cette limitation, nous pouvons utiliser register_shutdown_function.

Utilisation de register_shutdown_function

register_shutdown_function() est une fonction qui peut être appelée lorsque PHP s'arrête. Il prend une fonction définie par l'utilisateur comme paramètre. Cette fonction peut ensuite capturer toutes les erreurs non gérées survenues lors de l'exécution.

register_shutdown_function("fatal_handler");

function fatal_handler() {
    $error = error_get_last();
    if ($error !== NULL) {
        // Extract error information
        $errno = $error["type"];
        $errfile = $error["file"];
        $errline = $error["line"];
        $errstr = $error["message"];
        // Send error details via email using error_mail
        error_mail(format_error($errno, $errstr, $errfile, $errline));
    }
}

Fonctions supplémentaires

Dans le code ci-dessus, nous avons supposé l'existence de deux fonctions supplémentaires : error_mail et format_error. Voici comment les définir :

function format_error($errno, $errstr, $errfile, $errline) {
    $trace = print_r(debug_backtrace(false), true);
    $content = "..."; // Format the error message as needed
    return $content;
}
function error_mail($content) {
    // Use Swift Mailer or other mail-sending library to send the error email
}

Notes supplémentaires

  • register_shutdown_function nécessite PHP 5.2 ou version ultérieure.
  • La constante $php_errormsg fournit des informations sur l'erreur la plus récente.
  • Reportez-vous à la documentation des constantes prédéfinies pour une liste des types d'erreurs (par exemple, E_ERROR).
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3