Yii 2.0如何使用页面缓存方法示例
一、前言
二、示例代码
```php
namespace mon\lib;
use Yii;
use yii\caching\Cache;
use yii\di\Instance;
use yii\web\Response;
use yii\filters\PageCache as PCache;
class PageCache extends PCache {
// 参数设置,默认无参数,用法'varByParam' => Yii::$app->request->get('id')
public $varByParam = '';
public function beforeAction($action) {
if (!$this->enabled) {
return true;
}
$this->cache = Instance::ensure($this->cache, Cache::className());
if (is_array($this->dependency)) {
$this->dependency = Yii::createObject($this->dependency);
}
$properties = [];
foreach(['cache', 'duration', 'dependency', 'variations'] as $name) {
$properties[$name] = $this->$name;
}
// 根据路由和参数生成缓存ID
$id = $this->varyByRoute ? $action->getUniqueId() . $this->varByParam : __CLASS__;
$response = Yii::$app->getResponse();
ob_start(); // 开启输出缓冲
ob_implicit_flush(false); // 关闭隐式刷新
if ($this->view->beginCache($id, $properties)) { // 开始缓存视图输出
$response->on(Response::EVENT_AFTER_SEND, [$this, 'cacheResponse']); // 监听响应事件,进行缓存操作
return true; // 成功开始缓存视图输出,返回true
编程语言
- Yii 2.0如何使用页面缓存方法示例
- mysql 8.0.15 winx64解压版安装配置方法图文教程
- 一个JSP页面导致的tomcat内存溢出的解决方法
- MvcPager分页控件使用注意事项
- JS加载iFrame出现空白问题的解决办法
- 全面了解flex的用途
- Angular动态绑定样式及改变UI框架样式的方法小结
- php获取flash尺寸详细数据的方法
- IE6中ajax aborted错误请求中断解决方法
- PHP扩展框架之Yaf框架的安装与使用
- 浅析JS中常用类型转换及运算符表达式
- Angularjs中controller的三种写法分享
- MSSQL转MYSQL,gb2312转utf-8无乱码解决方法
- jQuery实现的鼠标响应缓冲动画效果示例
- mysql聚簇索引的页分裂原理实例分析
- 正则 js分转元带千分符号详解