Joomla позволяет кешировать отдельные части шаблонов, компонентов, а именно их вывод. Для этого необходимо создать объект кеша с обработчиком «output», так как показано
Создается кеш-объект c обработчиком «output». «com_test» в данном случае — это место хранения кеша: /cache/com_test ( в случае файлового кеша)
Далее выбирается идентификатор кеширования. Он должен зависеть например от внешних условий расширения. Таким образом для разных страниц, с разными Itemid будет создаваться разный кеш и не будет путаницы. В принципе можно подставлять сериализованые массивы с текущими параметрами вызова и прочее. Хорошим вариантом можно считать следующий вариант:
Таким образом обновление произойдет автоматический сброс при изменении элемента администратором сайта.
Внимание: Будте осторожны с выбором идентификатора кеша. Например использование следующих вариантов грозит резким ростом размера кеша, особенно на больших сайтах с высокой посещаемостью. Эффективность кеширования пойдет к нулю, более того в какой-то мере это можно считать дырой в безопасности сайта.
Далее начинаем непосредственный перехват вывода. Если файл кеша отсутствует или истек период его жизни, то функция start() вернет «false», в противном случае функция вернет «true».
В случае просроченного/отсутсвующего кеша — запуститься буферизация вывода. Заканчивается буферизация после выполнения end(). Если start() вернул «true», будет использован тот текст, который хранился с прошлого раза в файлах кеша.
Просмотров: 733