Подавление ошибок PHP игнорируется
Мой текущий файл php.ini настроен так, чтобы сообщать обо всех ошибках, кроме устаревших и строгих стандартов, следующим образом:
error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED
Причиной использования этого параметра является то, что нам срочно необходимо выполнить обновление PHP на сервере Linux, на котором размещены наши веб-сайты; проблема в том, что устаревшие функции и строгие рекомендации по стандартам очень быстро заполняют файлы журнала ошибок для более чем 170 веб-сайтов. Ошибки в основном связаны с небольшими вещами, такими как функции, которые не были объявлены как статические, и т. Д. В конечном итоге мы пройдем по всем сайтам и исправим эти проблемы, однако в то же время нам необходимо устранить ошибки.
Проблема, с которой я сталкиваюсь в локальной тестовой среде (использующей версию PHP, которую мы собираемся обновить до - 5.4.3), заключается в том, что ошибки по-прежнему отображаются со следующим напечатанным ранее:
SCREAM: Error suppression ignored for
Кто-нибудь может дать мне некоторое представление о том, почему подавление ошибок игнорируется и как правильно подавлять ошибки?
Заранее спасибо.
1 ответ
Похоже, вы используете расширение Scream. Из руководства:
Расширение scream дает возможность отключить оператор контроля ошибок глушения, чтобы сообщать обо всех ошибках. Эта функция контролируется настройкой ini.
Scream - это расширение для отладки, целью которого является отображение как можно большего количества сообщений об ошибках. Это делается путем игнорирования @
оператор и всегда имеет наивысший доступный уровень error_reporating. (независимо от вашего error_reporting
установка). Поэтому вам придется деактивировать расширение в вашем php.ini:
scream.enabled = off
Кстати, я бы не стал обновлять сервер, содержащий 170 сайтов, с ошибками в коде. Теперь это бомба Было бы лучше перенести их сайт за сайтом в новую версию PHP. Возможно наличие двух серверов параллельно во время процесса миграции.