PHP FATAL деңгээлиндеги каталарды кармайт

Расмий маалымдама

Расмий сайт set_error_handler register_shutdown_function

Бардык каталарды кантип кемчиликсиз кармоого болот

set_error_handler көпчүлүк каталардын түрлөрүн кармоо үчүн колдонулушу мүмкүн.FATAL деңгээлиндеги ката пайда болгондо, PHP түздөн-түз ишин токтоткону үчүн, set_error_handler тарабынан коюлган кайра чакыруу функциясы иштетилбейт. Ушул учурда, биз программаны токтотуу үчүн кайра чакыруу функциясын орнотуу үчүн register_shutdown_function колдонушубуз керек. Белгилей кетүүчү нерсе, regist_shutdown_function тарабынан орнотулган кайра кайтаруу процесси ката болгонуна карабастан, программа аяктагандан кийин аткарылат. Ошентип, бул чалууда, биз дагы ката кеткендигин аныкташыбыз керек, эгер ката кетсе, анда аны журналга жазабыз. Чоо-жайын билүү үчүн төмөнкү кодду караңыз.

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