PHP отлавливает ФАТАЛЬНЫЕ ошибки уровня
Официальная ссылка
Официальный веб-сайт set_error_handler register_shutdown_functionКак идеально отловить все ошибки
set_error_handler может использоваться для захвата большинства типов ошибок.При обнаружении ошибки уровня FATAL, поскольку PHP напрямую завершает операцию, функция обратного вызова, установленная set_error_handler, не может быть запущена. В это время нам нужно использовать register_shutdown_function, чтобы установить функцию обратного вызова для завершения программы. Следует отметить, что обратный вызов, установленный функцией register_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);
}