is_cached

is_cached -- 

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.


HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ