kumaxim
@kumaxim
Web-программист

Как подавить error_reporting() в PHP глобально?

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

Есть ли какой-нибудь способ глобально задать поведение для error_reporting(), чтобы ее вызовы в теле любого .php файла банально игнорировались? Я хочу в точке входа задать, например, error_reporting(E_ERROR | E_WARNING ) и чтобы любые другие вызовы типа error_reporting(0) или error_reporting(E_ALL) просто игнорировались. Можно ли такое достичь каким-либо образом?

Root-доступ к серверу есть, php.ini могу менять без ограничений. PHP работает в режиме PHP-FPM, в качестве единственного сервера используется Nginx.
  • Вопрос задан
  • 178 просмотров
Решения вопроса 1
DevMan
@DevMan
глобально оно итак задается в php.ini.
единственная возможность запретить реасайн через собственный вызов, доступная простому юзеру - занести error_reporting в disabled_functions.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
1. Сделайте глобальную замену функции на любую, например: error_reportingX()
2. Создайте свою proxy-функцию error_reportingX() в отдельном файле и там напишите всё, что хотите.
3. Загрузите её определение в точку входа через обычный require() или сразу добавьте файл с этой proxy-функцией в директиву php.ini auto-prepend-file
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы