Здравствуйте PHP-ориентированные хабралюди.
Возник серьезный вопрос, на который на не нашел решения.
Условия:
— Есть не ахти какой шаблон, есть не ахти какой код на пхп. Код кипит, варит, и приготавливает результат. Далее включается шаблонизатор и выводит этот результат. Все бы ничего если бы в процессе кипячения кода не возникали варнинги. Если они появляются, то они выводятся перед шаблоном, а шаблон имеет всякие стили и другие вещи, что эти варнинги превращаются в малозаметный пиксел сверху браузера (наверно встречали такую ситуацию).
— Если будет фатальная ошибка сам шаблон не будет выводиться и ошибка будет явно заметна, с этим проблем нету. С варнингами и замечаниями есть проблемы.
Задача:
аккумулировать данные варнинги в переменную и вывести в нужное и удобно читающиеся место шаблона.
Капал литературу вроде этой, stderr не дал результатов:
php.net/manual/en/wrappers.php.phpjanicky.com/content/article_18.htmlпхп запущен в режиме mod_php
=======
Не вижу способа, как через логи, но это костыль!
Давайте собирать консорциум, свой вклад уже дал. А у вас есть идеи?
=======
UPD:
Пасибо тем кто ответил на вопрос и подписал данный вопрос в избранное, судя по всему он лучший за последние 2 недели, я добавляю к данному вопросу свой ответ:
Иногда появляется проблема с тем что не плохобы сделать перехват ошибок с ООП для этого функция set_error_handler настраивается на МЕТОД так:
// Classes<br/>
class BaseCore implements IBaseCore<br/>
{<br/>
const ERRROR_LAYOUT = true;<br/>
<br/>
public function __construct()<br/>
{<br/>
// Установка перехвадчика ошибок<br/>
set_error_handler(array(&$this, 'error_handler'));<br/>
}<br/>
<br/>
public function error_handler($errno, $errstr, $errfile, $errline, $errcontext)<br/>
{<br/>
return false; // функция отключена, использовать базовые установки<br/>
}<br/>
<br/>
public function __call($method, $arg)<br/>
{<br/>
throw new ErrorFatalBaseException(self::ERRROR_LAYOUT, $method);<br/>
}<br/>
}<br/>
Надеюсь помог, удачи вам