is_cached()Retourne &true; s'il y a un fichier de cache valide pour ce templateDescriptionboolis_cachedstringtemplatestringcache_idstringcompile_id
Celà fonctionne seulement si $caching
est défini à true. Voir aussi la
section sur le cache.
Exemple avec is_cached()
caching = true;
if(!$smarty->is_cached('index.tpl')) {
//aucun appel à la base de donnée
}
$smarty->display('index.tpl');
?>
]]>
Vous pouvez aussi passer en second paramètre un identifiant
de $cache au cas où vous voudriez plusieurs
fichiers de cache pour ce template.
Vous pouvez donner un identifiant de compilation
en tant que troisième paramètre.
Si vous ne spécifiez pas ce paramètre, le $compile_id
persistant sera utilisé.
Si vous ne voulez pas passer un identifiant de cache mais plutôt un
$compile_id, vous devez passer
null en tant qu'identifiant de cache.
Exemple avec is_cached() et plusieurs templates
caching = true;
if(!$smarty->is_cached('index.tpl', 'FrontPage')) {
//appel de la base de données, assignation des variables
}
$smarty->display('index.tpl', 'FrontPage');
?>
]]>
Note technique
Si is_cached() retourne vrai, il charge en fait le cache existant et
le stocke en interne. Tout appel supplémentaire à
display() ou
fetch() retournera ce contenu stocké en interne
sans tenter de recharger le fichier en cache. Celà évite des problématiques d'accès concurents,
lorsqu'un second processus efface le cache entre l'appel de is_cached() et l'appel à
display()
comme dans l'un de nos exemples ci-dessus. Celà signifie également que les appels à
clear_cache()
et les changements de paramètres du cache peuvent n'avoir aucun effet alors que
is_cached() a retourné vrai.
Voir aussi
clear_cache(),
clear_all_cache() et
la section sur le cache.