CodeIgniter, руководство пользователя к версии 1.6.1


Обработка ошибок

CodeIgniter позволяет создавать описание возникающих ошибок при помощи функций, описанных ниже. В дополнение имеется класс, при помощи которого можно вносить в лог все сообщения об ошибках.

Замечание: По умолчанию, CodeIgniter отображает все ошибки PHP. Возможно вы захотите изменить это поведение, когда ваше приложение будет дописано. Вам надо просто найти функцию error_reporting() в самом начале главного файла index.php. Отключение сообщений об ошибках отключает запись в лог, в случае их возникновения.

В отличие от большинства систем, в CodeIgniter обработка ошибок представлена простыми функциями, которые доступны в любой части приложения. Такой подход позволяет не заботиться об области видимости, в которой мы сейчас находимся и вызывать обработчики откуда угодно.

Следующие функции предназначены для генерации ошибок:

show_error('message')

Эта функция выведет сообщение об ошибке, переданное в нее, используя шаблон, находящийся по этому адресу:

application/errors/error_general.php

show_404('page')

Эта функция отобразит сообщение о том, что файл не найден (ошибка 404), используя шаблон:

application/errors/error_404.php

Функция ожидает строку, содержащую путь к странице, которая не была обнаружена. Заметим, что CodeIgniter автоматически покажет сообщение 404, если не найден контроллер, к которому происходит обращение.

log_message('level', 'message')

Эта функция позволяет вам писать сообщения в лог-файлы. В первом параметре вы должны указать уровень критичности сообщения (debug, error, info), а во втором само сообщение. Например:

if ($some_var == "")
{
    log_message('error', 'Некоторая переменная не содержит значения');
}
else
{
    log_message('debug', 'Значение переменной установлено верно');
}

log_message('info', 'Цель этой переменной в том, чтобы хранить какое-то значение');

Есть три типа сообщения:

  1. Error Messages. Это фактические, актуальные ошибки, такие как ошибки PHP или пользователей.
  2. Debug Messages. Это сообщения для отладки, например можно использовать чтобы проверить был ли инициализирован класс.
  3. Informational Messages. Это самый низкий приоритет сообщения, просто предоставление информации в отношении какого-либо процесса. CodeIgniter использует для этого типа сообщений не родные методы языка, но вы вполне можете пользоваться этим типом сообщений.

Замечание: Для того чтобы была возможность вести логи, ваша папка «logs» должна быть доступна для записи. К тому же, вы должны установить уровень для ведения логов. Можно, например, оставить только протоколирование критических ошибок, а остальные игнорировать. Если этот порог установить на ноль, то отладка будет отключена.