|
|

|
is_cached()is_cached() -- Retourne TRUE s'il y a un fichier de cache valide pour ce template Descriptionbool is_cached ( string template [, string cache_id [, string compile_id]])
Celà fonctionne seulement si
$caching est défini à TRUE, voir aussi la
section sur le cache pour plus d'informations.
Vous pouvez aussi passer en second paramètre un identifiant
de $cache_id au cas où vous voudriez
plusieurs
fichiers de cache pour ce template.
Vous pouvez donner un
$compile id
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 $cache_id mais plutôt un
$compile_id, vous devez passer
NULL en tant que $cache_id.
Note technique :
Si is_cached() retourne TRUE, 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é TRUE.
Exemple 13-1. Exemple avec is_cached()
<?php $smarty->caching = true;
if(!$smarty->is_cached('index.tpl')) { //aucun appel à la base de donnée }
$smarty->display('index.tpl'); ?>
|
|
Exemple 13-2. Exemple avec is_cached() et plusieurs templates
<?php $smarty->caching = true;
if(!$smarty->is_cached('index.tpl', 'FrontPage')) { //appel de la base de données, assignation des variables }
$smarty->display('index.tpl', 'FrontPage'); ?>
|
|
Voir aussi
clear_cache(),
clear_all_cache() et
la section sur le cache.
|
|
|