Example #1
0
 static function error_handler($errno, $errstr, $errfile, $errline)
 {
     // если ошибка попадает в отчет (при использовании оператора "@" error_reporting() вернет 0)
     if (error_reporting() & $errno) {
         $errors = array(E_ERROR => 'E_ERROR', E_WARNING => 'E_WARNING', E_PARSE => 'E_PARSE', E_NOTICE => 'E_NOTICE', E_CORE_ERROR => 'E_CORE_ERROR', E_CORE_WARNING => 'E_CORE_WARNING', E_COMPILE_ERROR => 'E_COMPILE_ERROR', E_COMPILE_WARNING => 'E_COMPILE_WARNING', E_USER_ERROR => 'E_USER_ERROR', E_USER_WARNING => 'E_USER_WARNING', E_USER_NOTICE => 'E_USER_NOTICE', E_STRICT => 'E_STRICT', E_RECOVERABLE_ERROR => 'E_RECOVERABLE_ERROR', E_DEPRECATED => 'E_DEPRECATED', E_USER_DEPRECATED => 'E_USER_DEPRECATED');
         // выводим свое сообщение об ошибке
         $tpl = new View();
         $tpl->clear();
         $tpl->path = PATH . DIRECTORY_SEPARATOR . "view" . DIRECTORY_SEPARATOR . "errors" . DIRECTORY_SEPARATOR;
         $tpl->set("THEME", DIRECTORY_SEPARATOR . "view" . DIRECTORY_SEPARATOR . "errors" . DIRECTORY_SEPARATOR);
         $message = "<b>{$errors[$errno]}:</b> {$errstr} <i>(<b>{$errfile}</b> на {$errline} строке)</i><br />\n";
         $tpl->set('message', $message);
         $loadTpl = 'php.tpl';
         $tpl->loadTpl($loadTpl);
         $tpl->view();
         $tpl->clear();
     }
     // не запускаем внутренний обработчик ошибок PHP
     return TRUE;
 }