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