用Symfony动态构建cache
首页布局大概是这样的,有一个登录模块,登录前,显示的是用户名、密码输入框这些登录信息;登录后显示的是用户的信息资料。那么这块就不能cache起来。采用原来的方法就是,首页用个静态html,这块用个iframe包含动态脚步来处理。使用symfony就不用这样了,首页设置cache起来,设置with_layout: false,并把首页其他布局的Partial, Component, 或者Component Slot(比如各栏目最新10条信息等)设置为cache状态,只留下登录模块不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','gbinfo',array('info'=<$info));
那么在cache.yml里:
_baseinfo:
enabled: on
lifetime: 86400
这样就把baseinfo这块cache起来了,多加个’sf_cache_key’ =< $info-
清除cache:
- $cacheManager = $this-<getContext()-<getViewCacheManager();
- $cacheManager-<remove('@sf_cache_partial?module=info&action=_baseinfo&sf_cache_key='.$info-<getId());
【作者: Liberal】【访问统计:】【2007年07月30日 星期一 11:47】【注册】【打印】
本文介绍了如何在Symfony框架中动态构建缓存,以适应登录前后不同展示内容的需求。通过设置首页为缓存状态,但排除登录模块,结合组件和部分缓存,实现了首页的高效加载。例如,将一个显示信息的页面分成基本信息和动态留言信息两部分,分别用组件进行缓存和非缓存处理。在`cache.yml`中配置相应的缓存规则,确保需要动态更新的部分不会被缓存。
833

被折叠的 条评论
为什么被折叠?



