A PHP elkapja a FATAL szintű hibákat

Hivatalos hivatkozás

Hivatalos honlapján set_error_handler register_shutdown_function

Hogyan lehet tökéletesen elkapni az összes hibát

A set_error_handler a legtöbb hibatípus rögzítésére használható. Ha FATAL szintű hiba lép fel, mivel a PHP közvetlenül leállítja a műveletet, a set_error_handler által beállított visszahívási funkció nem indítható el. Jelenleg a register_shutdown_function funkciót kell használnunk a visszahívási funkció beállításához a program befejezéséhez. Meg kell jegyezni, hogy a register_shutdown_function által beállított visszahívás a program leállítása után kerül végrehajtásra, függetlenül attól, hogy van-e hiba a folyamatban. Tehát ebben a visszahívásban azt is meg kell határoznunk, hogy történt-e hiba, és ha hiba történt, akkor rögzítjük a naplóban. Részletekért olvassa el a következő kódot.

            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);
}