缓存组件
数据缓存需要缓存组件提供支持,它代表各种缓存存储器, 例如内存,文件,数据库。
'components' => [
'cache' => [
'class' => 'yii\caching\FileCache',
// 上面这种是Yii默认的缓存方式,标准文件缓存数据,当然也可以使用其他方式,如:
// 'class' => 'yii\caching\MemCache',
// 'class' => 'yii\caching\ApcCache',
],
]
组件使用
public function behaviors() {
return[
'cache' => [
'class'=>'yii\filters\PageCache', //页面缓存
'duration'=>100,//缓存时间
'only'=>['article'], //缓存的页面
'dependency'=>[ //缓存依赖
'class'=>'yii\caching\FileDependency',//文件缓存依赖关系
// 'fileName'=>'cache.php',//根据根目录的txt文件是否有变化 ,实际上是根据文件的最后时间而判断的,判断是否需要更新缓存
// 'class' => 'yii\caching\DbDependency',//DB缓存依赖关系
// 'sql' => 'SELECT COUNT(*) FROM document',//判断是否有变化进行更新缓存
//'class'=>'yii\caching\ExpressionDependency',//通过地址栏的值判断是否需要更新缓存
//'expression'=>Yii::$app->request->get('id'),
]
]
];
}
片段缓存
<?php
$id = Yii::$app->request->get('id');
$dependency = [
'class' => 'yii\caching\DbDependency',
'sql' => "select max(update_time) from document where id=$id",
];
if ($this->beginCache($id, ['duration' => 3600,'dependency' => $dependency])) {
$number = $article[0]["view"];
$view = Yii::$app->view;
$view->params['view'] = $view;
?>
<?php
$this->endCache();
}
?>