作者寄语:
TP5中没有了内置的静态缓存,我把3.2里的缓存模块改造了一下
其实就是通过两个行为扩展实现的,
// 模块初始化
'module_init' => ['app\\common\\behavior\\ReadHtmlCacheBehavior'],// 读取静态缓存
// 操作开始执行
'action_begin' => [],
// 视图内容过滤
'view_filter' => ['app\\common\\behavior\\WriteHtmlCacheBehavior'],// 写入静态缓存
静态规则定义:
'HTML_CACHE_ON' => true, // 开启静态缓存
'HTML_CACHE_TIME' => 60, // 全局静态缓存有效期(秒)
'HTML_FILE_SUFFIX' => '.shtml', // 设置静态缓存文件后缀
'HTML_CACHE_RULES' => array( // 定义静态缓存规则
// 定义格式1 数组方式
'静态地址' => array('静态规则', '有效期', '附加规则'),
// 定义格式2 字符串方式
'静态地址' => '静态规则',
)
这个和3.2的基本一致,唯一的区别就是,如这样的规则
'read'=>array('{id}',60)
在3.2里这个id提取的是$_GET['id'],而现在的提取的是Request::instance()->param('id');
如果需要用$_GET['id'],需要写成$_GET.id
其他一切和3.2兼容
缓存的类型是根据cache的配置决定的,所以可以通过刷新缓存来刷新此静态缓存。