2008/11/06

Пишем CMS. Часть 2: ловим ошибки

Как я уже писал, сейчас мы будем заниматься ошибками. Нам нужно:
а) чтобы пользователь ошибок не видел
б) чтобы владелец ресурса об ошибках был в курсе
Для этого мы (надеюсь, все внимательно ознакомились с мануалом http://php.net/manual/ru/book.errorfunc.php про перехват ошибок?) сначала настроим пхп в соответствии с требованиями. Воспользуемся функцией ini_set() и страничкой с описанием конфигурации. Примерно так:
error_reporting E_ALL | E_STRICT
display_errors "Off"
html_errors "Off"
Ах, да! внимательно прочитав описание error_reporting мы видим, что во время выполнения скрипта нас просят пользоваться функцией error_reporting(); воспользуемся.

Теперь пхп настроен как нам надо. Займемся перехватом ошибок. Обратим внимание на замечательную функцию set_error_handler() - она указывает пхп, кто\что будет заниматься обработкой ошибок вместо стандартного обработчика. На сайте приведён достаточно хороший пример, рассказано и показано, какого вида должна быть функция обратного вызова (callback fucntion). Так что я не буду заниматься здесь пережёвыванием мануала.
Но мы ведь собирались просто логировать ошибки? Для этого можно воспользоваться функцией log() из предыдущего примера, либо по аналогии написать функцию error(), либо (внимание!) провести небольшой рефакторинг функции log() так, чтобы она принимала местоназначение лога.

На сегодня у меня всё.
Успехов.
blog comments powered by Disqus