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

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

    Примечание

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

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

    CodeIgniter также возвращает код состояния, всякий раз когда ядро вызывает exit(). Этот код состояния отличный от HTTP кода состояния, и уведомляет другие процессы был ли сценарий завершен успешно или нет, и что за проблема повлекла прерывание. Эти значения определены в application/config/constants.php. Эти коды состояния наиболее полезны при использовании CLI параметров, возвращаемых надлежащий код серверного обеспечения помогающий отслеживать ваши скрипты и состояние ваших приложений.

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

    show_error($message, $status_code, $heading = 'Произошла Ошибка')
    Параметры:
    • $message (смешаный) – Сообщение об ошибке
    • $status_code (число) – HTTP код состояния ответа
    • $heading (строка) – Заголовок страницы с ошибкой
    Возвращаемый тип:

    пустота

    Эта функция отобразит сообщение об ошибке через шаблон ошибки, соответствующего вашему исполнению:

    application/views/errors/html/error_general.php
    

    or:

    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 (строка) – URI строка
    • $log_error (булево (bool)) – Нужно ли регистрировать ошибки
    Возвращаемый тип:

    пустота

    Эта функция отобразит сообщение об ошибке 404 используя шаблон ошибки, соответствующего вашему исполнению:

    application/views/errors/html/error_404.php
    

    or:

    application/views/errors/cli/error_404.php

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

    CodeIgniter автоматически регистрирует все show_404() вызовы. Необязательный второй параметр FALSE будет пропускать ведение журнала.

    log_message($level, $message, $php_error = FALSE)
    Параметры:
    • $level (строка) – Уровень журнала: ‘ошибка (error)’, ‘отладка (debug)’ или ‘инфо (info)’
    • $message (строка) – Сообщение журнала
    • $php_error (булево (bool)) – Записывать ли родные сообщения об ошибках PHP
    Возвращаемый тип:

    пустота

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

    Example:

    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. Вы могли бы, например, записывать в журнал только сообщения об ошибках, а не двух других типов. Если вы установите его равным нулю, то ведение журнала будет отключено.