is_cached void is_cached string template [string cache_id] Retourne vrai s'il y a un fichier de cache valide pour ce template. Cela fonctionne seulement si caching est a vrai. 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 voulez utiliser un identifiant de compilation sans utilisez d'identifiant de cache, mettez null pour l'identifiant de cache. is_cached avec 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. Cela é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 dans l'un de nos exemples ci-dessus. Cela signifie également que les appels à clear_cache() et les changements de paramètres du cache peuvent n'avoir aucun effet alors que is_cached à retourné vrai.