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() — Retourne TRUE
s'il y a un fichier de cache valide pour ce template
bool 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
.
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
.
Example 13.19. 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'); ?>
Example 13.20. 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.