相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說(shuō)明
- thinkPHP5框架實(shí)現(xiàn)分頁(yè)查詢(xún)功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫(xiě)文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
Yii 2.0如何使用頁(yè)面緩存方法示例
前言
本文主要給大家介紹的是關(guān)于Yii2.0如何使用頁(yè)面緩存的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面來(lái)一起看看詳細(xì)的介紹。
起初使用頁(yè)面緩存,發(fā)現(xiàn)使用于含有參數(shù)的方法存在弊端,只能緩存第一次的頁(yè)面,導(dǎo)致后面所有不同參數(shù)的頁(yè)面均顯示第一次緩存頁(yè)面;沒(méi)有生成一個(gè)參數(shù)頁(yè)面一個(gè)緩存;于是,進(jìn)行了重寫(xiě)頁(yè)面緩存。
示例代碼
<?php namespace common\lib; use Yii; use yii\caching\Cache; use yii\di\Instance; use yii\web\Response; use yii\filters\PageCache as PCache; /** * 重寫(xiě)頁(yè)面緩存,增加varByParam參數(shù)一列 */ class PageCache extends PCache { /** * 參數(shù)設(shè)置,默認(rèn)無(wú)參數(shù) * 用法:'varByParam' => Yii::$app->request->get('id') * @var string */ 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 = $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; } else { $data = $this->cache->get($this->calculateCacheKey()); if (is_array($data)) { $this->restoreResponse($response, $data); } $response->content = ob_get_clean(); return false; } } } ?>
相關(guān)文章
- smarty foreach函數(shù)
- Smarty中foreach的index、iteration,@count的使用
- 去掉織夢(mèng)建站或者仿站時(shí)首頁(yè)訪(fǎng)問(wèn)地址后的index.html
- MySQL修改編碼設(shè)置及亂碼問(wèn)題
- WampServer搭建PHP+Apache+MySQL環(huán)境
- 修改WAMP的www目錄的全過(guò)程
- 歸并排序:歸并操作的一種有效排序算法
- 如何編寫(xiě)PHP擴(kuò)展
- 如何克服php的register_global被關(guān)掉
- php正則表達(dá)式匹配img中任意屬性的方法