symfony 的 cache 详解
因为一个页面,有部分是不需要cache的,就像我前面写的用Symfony构建首页cache规划。今天实践了一下,比如一个显示信息的页面:showSuccess.php,我把它分成两部分:
基本信息
留言信息(有些留言只能对版主看到,需要动态判断,不去cache)
我把这两块做成info的component方式
一个叫baseinfo,一个叫gbinfo。
那么在showSuccess.php里调用这两个component
include_component('info','baseinfo',array('info'=>$info,'sf_cache_key' => $info->getId()));
include_component('info','gb',array('info'=>$info));
那么在cache.yml里:
_baseinfo:
enabled: on
lifetime: 86400
这样就把baseinfo这块cache起来了,多加个’sf_cache_key’ => $info->getId()是为了给这块cache启个代号,在清除cache时,比如修改信息内容后要把这块的cache清掉。
清除cache:
$cacheManager = $this->getContext()->getViewCacheManager();
$cacheManager->remove('@sf_cache_partial?module=info&action=_baseinfo&sf_cache_key='.$info->getId());