Дикий пионер

Рейтинг
203
Регистрация
23.11.2009

Ну как бы в браузере вы хоть раз варнинги видели? А тут по сути идёт захват всего, что выдаётся в браузер. Вот и варнинги захватываются.

Aisamiery:
Я вообще не понимаю что вы кэшируете и как ваши warning попадут в кэш.

сделайте функцию, которая будет возвращать html для вывода окончательный, результат функции и ложите в кэш

Это всё хорошо, если изначально об кеше задумывалось, а тут очень похоже на то, что прикручивают к уже готовому проекту. Поэтому (отвечая на вопрос "как?") - через output buffering, даже код для наглядности приведен.

Собственно поэтому на всякие варнинги человек и напоролся.

может так как-то проверять?

http://php.net/manual/ru/function.error-get-last.php

В браузере хром есть ссредства разработчика - они же chrome developer tools. В них есть вкладка network, которая показывает все запросы, которые отправляет браузер и все ответы сервера.

Если хотите парсить - вам надо подружиться в этим инструментом. В файрфоксе и ие есть аналоги.

Sly32:
Насколько это методологически верно?

Не мне вопрос, но отвечу. Если поставновка задачи именно как "отображение урла в зависимости от куска адреса", то это условие его и проверяет.

Sly32:
Влияет ли на скорость загрузки?

Теоретически влияет, как и весь код. На практике, если вы не гугл - то пофиг

Sly32:
В какой момент формируется адрес страницы по сравнению с DOM всей страницы.

Да как бы адрес страницы формируется еще до запуска скрипта. Он же апачу передается и апач уже передает этот адрес в php, а тот в зависимости от него формирует страницу.

Или тут какая-то подъёб тонкая ирония или я не понимаю вопросов.

Osavul:
В чем именно замечен костыль?

Внутреннее чувство жопой, что если классу нужно знать имя вызывающего его класса - то это костыль.

И костылём я своё предложение называл.


public function __get($name)
{
// Определение имени классов в которых вызываются не определенные свойства
$descendantClassName = get_class($this);
echo $descendantClassName . '<br>';

// Если объект уже существует, возвращаем его
if(isset(self::$obs[$name]))
{
self::$obs[$name]->calling_class = $descendantClassName;
return(self::$obs[$name]);
}
// Определяем имя нужного класса
$class = $this->classes[$name];

// Сохраняем для будущих обращений к нему
self::$obs[$name] = new $class();

// Возвращаем созданный объект
self::$obs[$name]->calling_class = $descendantClassName;
return self::$obs[$name];
}

Или какие-то такие костыли, или может с рефлексией заморочиться, или рассказать для чего вам это человеческим языком, а то похоже на проблему x y (http://7bloggers.ru/xy-problem/)

Ну это просто код пожат, чтобы быстрее грузился

Вообще странное какое-то дело, что переменная не понятно откуда берется по стеку вызовов. Если только глобальная какая-то и меняется в другом месте.

Ну даже хз, если вам в стеке вызовов копаться лень, то в логе всех событий вы вообще заколебетесь что-то искать.

Брейкпойнт на нужное место и в отладчике стек вызовов смотреть - по-моему самое актуальное решение.

Всего: 1870