Обработка ошибок
CodeIgniter позволяет интегрировать обработку ошибок в ваши приложения с помощью функций, описанных ниже. Кроме того, он имеет класс ведения журнала ошибок, который позволяет сохранять сообщения об ошибках и отладке в текстовых файлах.
Примечание
По умолчанию CodeIgniter отображает все ошибки PHP. Возможно, вы захотите изменить это поведение после завершения разработки. Функцию error_reporting() можно найти в верхней части файла index.php вашего основного приложения. Отключение обработки ошибок НЕ предотвратит запись файлов журнала в случае возникновения ошибок.
В отличие от большинства систем в CodeIgniter, функции обработки ошибок представляют собой простые процедурные интерфейсы, доступные глобально во всем приложении. Такой подход позволяет вызывать сообщения об ошибках без необходимости учитывать область видимости классов/функций.
CodeIgniter также возвращает код состояния всякий раз, когда какая-либо часть ядра вызывает exit(). Этот код состояния выхода отделен от кода состояния HTTP и служит уведомлением для других процессов, которые могут отслеживать, завершился ли скрипт успешно или нет, и если нет, то какой тип проблемы привел к его прерыванию. Эти значения определены в application/config/constants.php. Хотя коды состояния выхода наиболее полезны в средах командной строки, возвращение правильного кода помогает программному обеспечению сервера отслеживать ваши скрипты и состояние вашего приложения.
Следующие функции позволяют генерировать ошибки:
-
show_error($message, $status_code, $heading = 'An Error Was Encountered') -
Параметры: - $message (mixed) – Сообщение об ошибке
- $status_code (int) – Код состояния HTTP-ответа
- $heading (string) – Заголовок страницы ошибки
Тип возвращаемого значения: void
Эта функция отобразит сообщение об ошибке, переданное ей, с использованием шаблона ошибки, соответствующего вашему выполнению:
application/views/errors/html/error_general.php
или:
application/views/errors/cli/error_general.phpНеобязательный параметр
$status_codeопределяет, какой код состояния HTTP должен быть отправлен вместе с ошибкой. Если$status_codeменьше 100, код состояния HTTP будет установлен в 500, а код состояния выхода будет установлен в$status_code + EXIT__AUTO_MIN. Если это значение большеEXIT__AUTO_MAX, или если$status_codeравно 100 или больше, код состояния выхода будет установлен вEXIT_ERROR. Более подробную информацию можно найти в application/config/constants.php.
-
show_404($page = '', $log_error = TRUE) -
Параметры: - $page (string) – Строка URI
- $log_error (bool) – Выполнять ли логирование ошибки
Тип возвращаемого значения: void
Эта функция отобразит сообщение об ошибке 404, переданное ей, с использованием шаблона ошибки, соответствующего вашему выполнению:
application/views/errors/html/error_404.php
или:
application/views/errors/cli/error_404.phpФункция ожидает, что переданная ей строка будет путем к файлу страницы, которая не найдена. Код состояния выхода будет установлен в
EXIT_UNKNOWN_FILE. Обратите внимание, что CodeIgniter автоматически отображает сообщения 404, если контроллеры не найдены.CodeIgniter автоматически регистрирует любые
show_404()вызовы. Установка необязательного второго параметра в FALSE пропустит логирование.
-
log_message($level, $message) -
Параметры: - $level (string) – Уровень логирования: ‘error’, ‘debug’ или ‘info’
- $message (string) – Сообщение для регистрации
Тип возвращаемого значения: void
Эта функция позволяет записывать сообщения в файлы журнала. Вы должны предоставить один из трех «уровней» в первом параметре, указывающий, какой тип сообщения это (отладка, ошибка, информация), а само сообщение — во втором параметре.
Пример:
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.');Существует три типа сообщений:
- Сообщения об ошибках. Это фактические ошибки, такие как ошибки PHP или ошибки пользователя.
- Сообщения об отладке. Это сообщения, которые помогают при отладке. Например, если класс был инициализирован, вы можете записать это как информацию об отладке.
- Информационные сообщения. Это сообщения с наименьшим приоритетом, просто предоставляющие информацию о процессе.
Примечание
Для фактической записи файла журнала каталог logs/ должен быть доступен для записи. Кроме того, вы должны установить «порог» для ведения журнала в application/config/config.php. Например, вы можете регистрировать только сообщения об ошибках, а не другие два типа. Если вы установите его в ноль, ведение журнала будет отключено.
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/general/errors.html