Обработка ошибок
CodeIgniter позволяет вам обрабатывать сообщения об ошибках, используя функции, описанные ниже. К тому же, он имеет класс логгирования ошибок, который позволяет записывать в текстовые файлы сообщения об ошибках и сообщения отладки.
Примечание: По умолчанию CodeIgniter показывает все ошибки PHP. Вы можете изменить это поведение по факту окончания разработки. Найдите функцию error_reporting(), находящуюся в верху вашего главного файла index.php. При выключении вывода сообщений об ошибках они все равно будут записываться в файлы логов.
В отличие от большинства систем, функции ошибок в CodeIgniter - это простые процедурные интерфейсы, которые доступны глобально по всему приложению. Этот подход позволяет легко работать с ошибками, без забот по инициализации дополнительных классов и вызовов функций.
Следующие функции позволят вам генерировать ошибки:
show_error('message' [, int $status_code= 500 ] )
Эта функция отобразит сообщение об ошибке, в соответствии с шаблоном:
application/errors/error_general.php
Опциональный параметр $status_code определяет, какой код статуса HTTP должен быть отправлен вместе с ошибкой.
show_404('page' [, 'log_error'])
Эта функция отобразит сообщение об ошибке 404, в соответствии с шаблоном:
application/errors/error_404.php
Функция ожидает строку — путь к странице, которая не найдена. CodeIgniter автоматически показывает сообщения 404, если не найден контроллер.
CodeIgniter автоматически записывает все вызовы show_404(). Установка второго опционального параметра в FALSE выключит логгирование.
log_message('level', 'message')
Эта функция позволяет вам записывать сообщения в файлы логов. Вы должны передать один из трех "уровней" в первом параметре, отражающим тип сообщения (отладка, ошибка, информация), с сообщением во втором параметре. Пример:
if ($some_var == "")
{
log_message('error', 'Some variable did not contain a value.');
}
else
{
log_message('debug', 'Some variable was correctly set');
}
log_message('info', 'The purpose of some variable is to provide some value.');
Существуют три типа ошибок:
- Сообщения об ошибках (Error). Это актуальные ошибки, такие как ошибки PHP или ошибки пользователя.
- Сообщения отладки (Debug). Это сообщения, которые помогают с отладкой. Например, если класс был инициализирован, вы можете записать это как отладочную информацию.
- Информационные сообщения (Info). Это сообщения с наименьшим приоритетом, просто дающие информацию относительно некоторых процессов. CodeIgniter не генерирует информационные сообщения по умолчнию, но вы можете делать это в своем приложении.
Примечание: Для того, чтобы записывался файл лога, директория "logs" должна быть доступной для записи. К тому же, вы должны устанавливать "порог" для логгинга. Вы можете, к примеру, записывать только сообщения об ошибках, но не другие два типа. Если вы установите порог в ноль, логгирование будет выключено.