Spec-Zone.ru › CodeIgniter 3

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

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.');

Существует три типа сообщений:

  1. Сообщения об ошибках. Это фактические ошибки, такие как ошибки PHP или ошибки пользователя.
  2. Сообщения об отладке. Это сообщения, которые помогают при отладке. Например, если класс был инициализирован, вы можете записать это как информацию об отладке.
  3. Информационные сообщения. Это сообщения с наименьшим приоритетом, просто предоставляющие информацию о процессе.

Примечание

Для фактической записи файла журнала каталог logs/ должен быть доступен для записи. Кроме того, вы должны установить «порог» для ведения журнала в application/config/config.php. Например, вы можете регистрировать только сообщения об ошибках, а не другие два типа. Если вы установите его в ноль, ведение журнала будет отключено.

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/general/errors.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API