yii2.0规范文档:https://www.yiichina.com/doc/guide/2.0/caching-page
PageCache类官方文档:https://www.yiichina.com/doc/api/2.0/yii-filters-pagecache
本人示例代码:
public function behaviors(){ return [ // 页面缓存示例 [ ‘class‘ => ‘yii\filters\PageCache‘, ‘only‘ => [‘list‘, ‘taglist‘, ‘helplist‘], ‘duration‘ => 86400,// 一天 0 永不过期 ‘variations‘ => [ $this->area_id, ], ‘dependency‘ => [ ‘class‘ => ‘yii\caching\ExpressionDependency‘, ‘expression‘ => ‘\Yii::$app->FileCache->get("selfhelp_home_page")‘ ], ‘cache‘ => ‘view_cache‘, ‘enabled‘ => false ] ]; }
class: 页面缓存类
only: 需要执行页面缓存的方法
duration: 缓存时间(秒级),0为永不过期
variations: 根据什么条件来进行变化页面,例如示例中的地区,每个地区显示不一样的东西。yii示例中给的是系统语言\Yii:$app->language。
cache: 使用什么缓存机制来存储页面缓存数据,本人用的是filecache。
enabled: 缓存开关,可以使用!YII_DEBUG或者\Yii::$app->request->isGet等
dependency: 刷新缓存机制,依赖机制有很多种
1.db-sql执行结果:
$dependency = [ ‘class‘ => ‘yii\caching\DbDependency‘, ‘sql‘ => ‘SELECT MAX(updated_at) FROM post‘, ];
2.表达式执行结果:
特别注意是php表达式,执行一次后,变量$expression会一直保存。ExpressionDependency类中使用eval()来执行。
本人刷新缓存方法是根据cache结果是否发生变化。
$dependency => [ ‘class‘ => ‘yii\caching\ExpressionDependency‘, ‘expression‘ => ‘\Yii::$app->FileCache->get("cache")‘ ],
3.文件的最后修改时间:
$dependency => [ ‘class‘ => ‘yii\caching\FileDependency‘, ‘expression‘ => ‘filename‘ ],
其他种类暂未研究...
原文:https://www.cnblogs.com/leee99/p/11084545.html