Боюсь тогда придется выпилить из PHP все ворнинги и заменить их на эксепшены.
К примеру такой код:
$а = file_get_contents('https://domain.com');
Выкинет ворнинг если удаленный ресурс недоступен. И это нормально, что удаленный ресурс может быть недоступен. Только еслиб эта функция бросала эксепшен, то я просто обернул бы ее в try… catch и обработал бы ошибку как надо. В текущем же варианте, чтоб не засорять лог ошибок, приходится добавлять @ перед этой функцией и лишь затем проверять, а не произошла ли ошибка.
Конечно можно решить эту проблему с помощью set_error_handler, но данный механизм крайне не гибкий и неудобный в использовании, ведь в место того, чтоб ловить ворнинг в конкретном одном месте оно будет ловить ворнинги отовсюду в коде, хотя как раз там нужно чтоб они сыпались в лог.