bool
is_cached ( string template [, string cache_id [, string compile_id]])
Возвращает true если существует кэш для указанного шаблона.
Работает только в том случае, если значение caching установлено в true.
Пример 13-1. is_cached
<?php $smarty->caching = true;
if(!$smarty->is_cached("index.tpl")) { // обращаемся к БД, назначаем переменные }
$smarty->display("index.tpl"); ?>
|
|
Также вы можете передавать cache id в качестве необязательного второго
параметра, если у вас используется множественное кэширование шаблона.
Также вы можете передавать compile id в качестве необязательного третьего параметра.
Если вы не передадите этот параметр, будет использован текущий
$compile_id.
Если вы не хотите передавать cache id, но хотите передать compile
id, вы должны передать null в качестве cache id.
Пример 13-2. is_cached при множественном кэшировании шаблона
<?php $smarty->caching = true;
if(!$smarty->is_cached("index.tpl", "FrontPage")) { // обращаемся к БД, назначаем переменные }
$smarty->display("index.tpl", "FrontPage"); ?>
|
|
Техническое замечание:
Если is_cached возвращает true, при этом она загружает
кэшированный вывод и хранит его в памяти. Любые последующие вызовы
display() или
fetch()
будут возвращать этот хранимый в памяти вывод и не будут пытаться перезагрузить
файл кэша. Это предотвращает неприятную ситуацию, которая может возникнуть если
другой процесс очищает кэш между вызовами is_cached и
display в предыдущем примере. Это также означает, что
clear_cache()
и другие изменения настроек кэширования могут не вступить в силу после того, как
is_cached вернула true.