What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
is_cached
bool is_cached(string template,
string cache_id,
string compile_id);
Возвращает true если существует кэш для указанного шаблона. Работает только в том случае, если значение caching установлено в true.
Example 13.18. 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.
Example 13.19. 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.