yii example de cache en utilisant CFileCache

Pour mettre en cache des pages entière avec Yii CFileCache est une très bonne solution. Le cache sera stocké dans des fichiers dans runtime/cache/…

Dans cette example je met en cache tout la page, il peut être judicieux de séparer pour avoir un header dynamique..

il faut déclarer CfileCache dans les components dans le fichier config/main.php, comme suit:

'components'=>array(
'cache'=>array(
'class'=>'system.caching.CFileCache')

Puis dans notre action on procédera comme suit :

if (($cache=Yii::app()->cache) !==null)
{
$key = 'uneclepartelementunique';
if (($content=$cache->get($key))!==false){
//le cache est uptodate !
echo $content;
}else{
//on crée le nouveau contenu !
$newContent = $this->render('view',array(),true);
if ($$newContent!=null){
$cache->set($key,$newContent,0,new CDbCacheDependency('SELECT update_time FROM page WHERE `id`='.$id));
echo $$newContent;
return $$newContent;
}else {
return null;
}
}
}

ici on utilise CdbCacheDependency sur le champs update_time ce qui signifie que si ce champs change le cache sera plus considéré uptodate.

CdbCacheDependency n’est pas la seul possibilité voir les autres possiblitité dans la doc

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>