
Как отображать ошибки PHP и включить отчеты об ошибках
Если вы погуглите "ошибки PHP", одним из первых результатов, которые вы увидите, будет ссылка на документацию по функции error_reporting.
Эта функция позволяет вам как установить уровень отчетов об ошибках PHP, когда ваш скрипт PHP (или набор скриптов) работает, так и получить текущий уровень отчетов об ошибках PHP, как определено в конфигурацией PHP.
Функция error_reporting принимает единственный параметр, целое число, которое указывает, какой уровень отчетности установить. Если ничего не передавать в качестве параметра, тогда функция error_reporting просто возвращается текущий установленный уровень.
Существует длинный список возможных значений, которые вы можете передать в качестве параметра, но мы рассмотрим их позже.
На данный момент важно знать, что каждое возможное значение также существует как предопределенная константа PHP. Так, например, константа E_ERROR имеет значение 1. Это означает, что вы можете передать 1 или E_ERROR функции error_reporting и получить одинаковый результат.
В качестве быстрого примера, если мы создадим файл php_error_test.php, мы сможем увидеть текущий установленный уровень сообщения об ошибках, а также установить его на новый уровень.
Настройка отображения ошибок в PHP
Использовать функции error_reporting таким образом удобно, когда вы просто хотите увидеть любые ошибки, связанные с фрагментом кода, над которым вы сейчас работаете.
Но было бы лучше контролировать, о каких ошибках сообщается в вашей локальной среде разработки, и регистрировать их где-нибудь в логическом месте, чтобы иметь возможность просматривать во время написания кода. Это можно сделать внутри файла инициализации PHP (или php.ini).
Файл php.ini отвечает за настройку всех аспектов поведения PHP. В нем вы можете установить такие вещи, как объем памяти, который следует выделить для сценариев PHP, разрешить загрузку файлов и какие уровни error_reporting следует установить.
Если вы не уверены, где находится ваш файл php.ini, один из способов узнать это - вызвать функцию phpinfo. Эта функция выведет всю информацию, относящуюся к вашему установленному PHP.
Как вы можете видеть из моего phpinfo, мой текущий файл php.ini находится в /etc/php/7.3/apache2/php.ini.
Найдя файл php.ini, откройте его в любом редакторе и найдите раздел «Error handling and logging». Вот где начинается самое интересное!
Error reporting директивы
Первое, что вы увидите в этом разделе, - это раздел комментариев, который включает подробное описание всех констант уровней ошибок. Это замечательно, потому что вы будете использовать их позже, чтобы установить уровни отчетов об ошибках.
; Common Values:
; E_ALL (Show all errors, warnings and notices including coding standards.)
; E_ALL & ~E_NOTICE (Show all errors, except for notices)
; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)
; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
Наконец, после всех комментариев указано текущее значение вашего уровня error_reporting. Для локальной разработки я бы предложил установить его на E_ALL, чтобы видеть все ошибки.
Обычно это одна из первых вещей, которые я задаю, когда настраиваю новое окружение. Таким образом я увижу все сообщения об ошибках.
error_reporting = E_ALL
Директива display_errors позволяет вам переключать, выводит ли PHP ошибки или нет. Обычно у меня установлено значение «On.», Поэтому я могу видеть ошибки по мере их возникновения.
Параметр display_startup_errors позволяет включить / выключить такое же переключение ошибок, которое может возникнуть во время последовательности запуска PHP. Обычно это ошибки в конфигурации вашего PHP или веб-сервера, а не конкретно в вашем коде. Рекомендуется оставить этот параметр выключенным, если вы не устраняете проблему и не уверены, что ее вызывает.
Директива log_errors сообщает PHP, нужно ли записывать ошибки в файл журнала ошибок. По умолчанию он всегда включен и рекомендуется.
Кастомный журнал ошибок для Apache
Оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи