Проблема, которую я пытаюсь решить, почти идентична следующей: разумный кеш и состояния входа в систему , но я хочу знать, могу ли я решить эту проблему определенным образом.
Что я хочу сделать, это просто отключить все smarty кэширование, если пользователь вошел в систему. Например:
$smarty->cache_lifetime = 300;
$smarty->caching = ( $user->is_logged_in ) ? false : 2;
$my_cache_id = $_GET['article_id'];
if( $user->is_logged_in || !$smarty->is_cached('index.tpl',$my_cache_id) ) {
//Get page data
}
$smarty->display('index.tpl', $my_cache_id);
Конечно, это будет иметь такой же эффект, как и определение динамических блоков, но это будет намного проще, и большая часть моего трафика не будет зарегистрирована.
Я весьма уверен, что это появится на внешнем интерфейсе так, как мне нужно, реальный вопрос заключается в том, будет ли он кэшировать что-либо, когда я продолжу его отключать. заинтересованы в любых других потенциальных проблемах, делающих это.
Например:
- Пользователь 1 (не авторизован) - выполняет страницу и создает кэш
- Пользователь 2 (вошел в систему) - выполняет кэширование страниц;
- Пользователь 3 (не вошел в систему) - будет ли это загружаться из кэша?