Manuel Smarty

is_cached()

is_cached() -- Retourne TRUE s'il y a un fichier de cache valide pour ce template

Description

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.

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()

  1. <?php
  2. $smarty->caching = true;  
  3.  
  4. if(!$smarty->is_cached('index.tpl')) {  
  5. //aucun appel à la base de donnée
  6. }  
  7.  
  8. $smarty->display('index.tpl');  
  9. ?> 

Exemple 13-2. Exemple avec is_cached() et plusieurs templates

  1. <?php
  2. $smarty->caching = true;  
  3.  
  4. if(!$smarty->is_cached('index.tpl', 'FrontPage')) {  
  5. //appel de la base de données, assignation des variables
  6. }  
  7.  
  8. $smarty->display('index.tpl', 'FrontPage');  
  9. ?> 

Voir aussi clear_cache(), clear_all_cache() et la section sur le cache.


Remonter Remonter
Jamma Play - L'éditeur javascript - CSS - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique