PHP fanger FATAL-fejl

Officiel reference

Officiel hjemmeside set_error_handler register_shutdown_function

Sådan fanges alle fejl perfekt

set_error_handler kan bruges til at registrere de fleste fejltyper. Når der opstår en FATAL-niveaufejl, fordi PHP direkte afslutter handlingen, kan tilbagekaldsfunktionen, der er indstillet af set_error_handler, ikke udløses. På dette tidspunkt skal vi bruge register_shutdown_function til at indstille tilbagekaldsfunktionen til programafslutning. Det skal bemærkes, at det tilbagekald, der er indstillet af register_shutdown_function, udføres, efter at programmet er afsluttet, uanset om der er en fejl i processen. Så i denne tilbagekaldelse skal vi også afgøre, om der er opstået en fejl, og hvis der er opstået en fejl, registrerer vi den i loggen. For yderligere oplysninger henvises til følgende kode.

            set_error_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function exception_handler($err_no, $err_str, $err_file, $err_line)
{
    error_reporting(0);
    // save error log
    // ...
    error_reporting(E_ALL);
}
function shutdown_handler()
{
    $error = error_get_last();
    if (empty($error)) {
        return;
    }
    error_reporting(0);
    // save error log
    // ...
    error_reporting(E_ALL);
}