Доброго времени суток.
Работаю с дичайшим лесом легаси-кода, по которому в 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.
глобально оно итак задается в php.ini.
единственная возможность запретить реасайн через собственный вызов, доступная простому юзеру - занести error_reporting в disabled_functions.
1. Сделайте глобальную замену функции на любую, например: error_reportingX()
2. Создайте свою proxy-функцию error_reportingX() в отдельном файле и там напишите всё, что хотите.
3. Загрузите её определение в точку входа через обычный require() или сразу добавьте файл с этой proxy-функцией в директиву php.ini auto-prepend-file