Обработка ошибок
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', 'Цель этой переменной в том, чтобы хранить какое-то значение');
Есть три типа сообщения:
- Error Messages. Это фактические, актуальные ошибки, такие как ошибки PHP или пользователей.
- Debug Messages. Это сообщения для отладки, например можно использовать чтобы проверить был ли инициализирован класс.
- Informational Messages. Это самый низкий приоритет сообщения, просто предоставление информации в отношении какого-либо процесса. CodeIgniter использует для этого типа сообщений не родные методы языка, но вы вполне можете пользоваться этим типом сообщений.
Замечание: Для того чтобы была возможность вести логи, ваша папка «logs» должна быть доступна для записи. К тому же, вы должны установить уровень для ведения логов. Можно, например, оставить только протоколирование критических ошибок, а остальные игнорировать. Если этот порог установить на ноль, то отладка будет отключена.