[Smarty] Вопрос по кэшу

codex

Новичок
[Smarty] Вопрос по кэшу

Есть движок с кучей модулей, решили к нему прикрутить кэширование смарти (движок изначально на смарти работал, но без кэширования), причём сделать это надо как можно быстрее. Так как много всего интерактивного и динамичного (магазин, опросы, форум...) , то очищать кэш выборочно будет проблематично, плюс к этому, блоки модулей вставляются где только можно. Вознакла мысль при каждом действии пользователя / админа, очищать ВЕСЬ кэш. Вопрос. При таком варварском подходе не будет ли менее расточительным не включать кэш вообще? Не откажусь от советов по данной теме, а так же ссылок на статьи.
 

Alexandre

PHPПенсионер
При таком варварском подходе не будет ли менее расточительным не включать кэш вообще?
лучше кеширование не использовать вообще
(в моем проекте чистка кеша происходит раз в квартал и занимает несколько часов.... Но это от неправильного проектирования. ) Если кеш надо чистить, то его тогда лучше не использовать... Хотя, все сугубо индивидуально.

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

codex

Новичок
Хм, получается, что кэш актуален только для статичного контента, либо его использование требует серьёзных трудо-время затрат.
 

kvf77

Red Devil
Alexandre

Шо за бред? какая-то у тебя проблема надуманная - чистится все по крону - ты не задумывался что надо чаще чистить чтобы не часами? я думаю у вас просто проблема реализации

короче - кэширование надо использовать и можно
 

Serguitar

Новичок->продвинутый
codex
Я храню кеш каталогизированно и по крону сношу не весь кеш, а только то, что нужно. Правильно спроектированная админка также удалет кеш, который ДОЛЖЕН БЫТЬ удален сразу при изменении контента. Крон сносит то, что должно менятся, к примеру, раз в сутки.
ИМХО - кешу быть.
 

Антон Попов

Новичок
Согласен с Serguitar, правильно спроектированная админка должна сразу удалять кеш при изменении. Но я даже реализовав это не смог использовать кеширование в смарти из-за сложности архитектуры, когда шаблоны для вывода хранятся и в базе данных и на диске. Еще одна проблема в смарти - это когда для некоторых блоков отменяешь кеширование, то файл кеша все равно создается и в нем записывается текущее время, на место времени когда кеш умирает. Таким образом прежде чем запросить контент у движка, смарти вынужден открывать файл, unserialize'ть его содержимое и смотреть, что кеш неактуален. Все это сводит на нет удобство поблочного кеширования. Я нашел выход в использовании PEAR::Cache_Lite - включаю его, когда необходимо закешировать вывод блока, а также там есть очень удобный класс для кеширования результатов работы функции, причем не только вывод на экран, но и все return'ы.
 

Govi

Новичок
Вопрос довольно обширный, поетому пишу сюда. Как кешировать постраничный вывод?
 

Govi

Новичок
Подскажите как часть шаблона закешировать?
есть массив
$arr = $obj->get();
и
$smarty->assign("arr", $arr);
 

kvf77

Red Devil
Govi

кэшируешь все, то, что не надо кэшировать помещаешь в спец. теги - они описаный в документации
 
Сверху