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

Другие вопросы по тегам