Архив ошибки

Уходим с честью – register_shutdown_function в PHP

Posted in PHP с тегами , on 16 Март 2008 by theifish

Иногда приходится по тем или иным причинам завершать скрипт, но это не всегда выглядит красиво. Не очень то хочется показывать пользователю информацию о фатальной ошибке или черный экран(когда отключен показ ошибок). В PHP есть функция register_shutdown_function, позволяющая установить функцию, которая будет вызвана при завершении выполнения скрипта. Это значит, что указанная функция будет запущена когда наш скрипт удачно завершит выполнение или аварийно закончится. Добавив переменную, которая в самом начале выполнения скрипта будет установлена в false, а в самом конце в true, мы сможем проверить был ли скрипт завершен удачно или произошло аварийное заврешение. Здесь приведен очень простой пример, который показывает как вы сможете сообщить пользователю о произошедшей фатальной ошибке. Также необходимо отключить сообщения об ошибках, чтобы все это выглядело прилично.

<?php
$clean = false;
function shutdown_func(){
global $clean;
if (!$clean){
die(”not a clean shutdown”);
}
}

register_shutdown_function(’shutdown_func’);

$a = 1;
$a = new FooClass(); // will fail with fatal

$clean = true;
?>

Как видно из скрипта, shutdown_func будет выводить текст только если переменная $clean равна false, то есть при ошибке.

Нашел здесь: http://eirikhoem.wordpress.com/2008/03/15/dying-with-grace-phps-register_shutdown_function/