当前位置:首页 > CMS教程 > 其它CMS > 列表

YII框架http缓存操作示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-20 12:39:37 浏览: 评论:0 

这篇文章主要介绍了YII框架http缓存操作,结合实例形式分析了Yii框架针对http缓存的禁用、启用、读写、显示等相关操作技巧,需要的朋友可以参考下。

本文实例讲述了YII框架http缓存操作,分享给大家供大家参考,具体如下:

http禁止缓存原理

  1. header('Expires: 0'); 
  2. header('Last-Modified: 'gmdate('D, d M Y H:i:s') . ' GMT'); 
  3. header('Cache-Control: no-store, no-cahe, must-revalidate'); 
  4. //ie专用 
  5. header('Cache-Control: post-chedk=0, pre-check=0', false); 
  6. //for HTTP/1.0 
  7. header('Pragma: no-cache'); 
  8. HttpcacheController.php 

首先判断的是客户端lastModified,如果最后更新时间没有变化,就不会更新缓存,然后再判断etagSeed

  1. <?php 
  2. /** 
  3.  * Created by PhpStorm. 
  4.  * Date: 2016/5/25 
  5.  * Time: 20:17 
  6.  * http 缓存 
  7.  */ 
  8. namespace frontend\controllers; 
  9. use yii; 
  10. use yii\web\Controller; 
  11. class HttpcacheController extends Controller 
  12.   public function behaviors()//先于action执行,可以用来实现页面缓存 
  13.   { 
  14.     return [ 
  15.       [ 
  16.         'class'=>'yii\filters\HttpCache',//整个页面缓存 
  17.         'lastModified'=>function(){ 
  18.           return filemtime('hw.txt'); 
  19.           //return 22221231231231;//可以在每次修改数据时,记入缓存,从缓存读取 
  20.         }, 
  21.         'etagSeed'=>function(){ 
  22.           $fp = fopen('hw.txt','r');//hw.txt在web的根目录下 
  23.           $title = fgets($fp);//读取第一行 
  24.           fclose($fp); 
  25.           return $title
  26.           //return 'etagseed2123123';//内容 
  27.         }, 
  28.       ] 
  29.     ]; 
  30.   } 
  31.   public function actionIndex() 
  32.   { 
  33.     $content = file_get_contents('hw.txt'); 
  34.     return $this->renderPartial("index",['new'=>$content]); 
  35.   } 

httpcache/index.php

  1. <?php 
  2. /** 
  3.  * Created by PhpStorm. 
  4.  * Date: 2016/5/25 
  5.  * Time: 20:19 
  6.  */ 
  7. ?> 
  8. <div> 
  9.   <div>这是http缓存页面</div> 
  10.   <p><?= $new;?></p> 
  11. </div>

Tags: YII框架 http缓存操作

分享到: