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

  • Автор темы Автор темы codex
  • Дата начала Дата начала

codex

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

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

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

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

короче - кэширование надо использовать и можно
 
codex
Я храню кеш каталогизированно и по крону сношу не весь кеш, а только то, что нужно. Правильно спроектированная админка также удалет кеш, который ДОЛЖЕН БЫТЬ удален сразу при изменении контента. Крон сносит то, что должно менятся, к примеру, раз в сутки.
ИМХО - кешу быть.
 
Согласен с Serguitar, правильно спроектированная админка должна сразу удалять кеш при изменении. Но я даже реализовав это не смог использовать кеширование в смарти из-за сложности архитектуры, когда шаблоны для вывода хранятся и в базе данных и на диске. Еще одна проблема в смарти - это когда для некоторых блоков отменяешь кеширование, то файл кеша все равно создается и в нем записывается текущее время, на место времени когда кеш умирает. Таким образом прежде чем запросить контент у движка, смарти вынужден открывать файл, unserialize'ть его содержимое и смотреть, что кеш неактуален. Все это сводит на нет удобство поблочного кеширования. Я нашел выход в использовании PEAR::Cache_Lite - включаю его, когда необходимо закешировать вывод блока, а также там есть очень удобный класс для кеширования результатов работы функции, причем не только вывод на экран, но и все return'ы.
 
Вопрос довольно обширный, поетому пишу сюда. Как кешировать постраничный вывод?
 
Подскажите как часть шаблона закешировать?
есть массив
$arr = $obj->get();
и
$smarty->assign("arr", $arr);
 
Govi

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