Лучший способ подавить PHP-ошибки на рабочих серверах

Каков наилучший способ скрыть ошибки php в браузере?

Будет ли это использовать следующее:

ini_set("display_errors", 1); 

Любые советы по лучшей практике также будут оценены!

Я регистрирую ошибки, я просто хочу удостовериться, что установка значения display_errors в off (или 0) не предотвратит регистрацию ошибок.

Лучше всего, конечно, регистрировать свои ошибки, а не отображать или игнорировать их.

В этом примере будут записываться ошибки в syslog, а не отображать их в браузере.

 ini_set("display_errors", 0); ini_set("log_errors", 1); //Define where do you want the log to go, syslog or a file of your liking with ini_set("error_log", "syslog"); // or ini_set("error_log", "/path/to/syslog/file"); 

Предполагая, что вы контролируете файл php.ini, вы можете сделать эти изменения глобально внутри этого файла, вместо того чтобы иметь код ini_set, лежащий во всех ваших php-файлах (который вы, возможно, забыли вставить в один из ваших файлов в один прекрасный день, может быть плохой в производстве).

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

 if ( isset($_ENV['MY_APP_MODE']) && ($_ENV['MY_APP_MODE'] == 'devel') ) { error_reporting(E_ALL); } else { error_reporting(0); } 

Вы также можете использовать apache .htaccess для регистрации ошибок, не касаясь вашего кода:

 <IfModule mod_php5.c> php_flag display_errors Off php_flag log_errors On php_value error_log logs/errors </IfModule> 

К сожалению, файлы распространения PHP посылают смешанное сообщение об обработке сообщений об ошибках. Файл php.ini по умолчанию имеет некоторые настройки, подходящие для рабочих серверов, а другие – для серверов разработки. Вы должны включить все ошибки в dev ( error_reporting = E_ALL и display_errors = On ) и выключить в prod ( display_errors = off но point log_errors где-то). Однако сделайте все возможное, чтобы убедиться, что ошибок нет (или они обрабатываются).

Лучший путь? Исправьте ошибки!

Если вам нужно быстрое временное решение, тогда все в порядке, чтобы отключить display_errors, но убедитесь, что вы их где-то регистрируете, потому что эта настройка сделает серьезные / синтаксические ошибки в противном случае.