PHP fangt FATAL nivo flaters op

Offisjele referinsje

Offisjele webside set_error_handler register_shutdown_function

Hoe kinne jo alle flaters perfekt fange

set_error_handler kin brûkt wurde om de measte flatertypen op te nimmen. As in FATAL-flater is tsjinkaam, om't PHP de operaasje direkt beëindiget, kin de troch call_error_handler ynstelde werombelfunksje net wurde aktivearre. Op dit stuit moatte wy register_shutdown_function brûke om de callback-funksje yn te stellen foar programma-beëindiging. Dêrby moat opmurken wurde dat de callback ynsteld troch register_shutdown_function wurdt útfierd neidat it programma is beëinige, likefolle oft d'r in flater yn it proses is. Dat yn dizze callback moatte wy ek bepale oft der in flater is bard, en as der in flater is bard, sille wy dizze opnimme yn it logboek. Foar details ferwize jo nei de folgjende koade.

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