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