YII之片段缓存

2/10/2017来源:ASP.NET技巧人气:336

yii的片段缓存应用的话挺简单的

1,在配置文件里开启缓存(man.php

'cache'=>array(
            'class'=>'system.caching.CFileCache',
        ),
或者这样(只是不同的书写格式而已)

'cache' => [
            'class' => 'yii\caching\FileCache',
        ],

2,接下来就是使用缓存了(直接在views页面里使用

<?php
  if($this->beginCache('list',array(//list可以是个变量,就是这个值作为缓存标示存在则使用缓存,不存在则以此值为名创建缓存
      'duration'=>10,//设置缓存有效时间
      'dependency'=>array(//设置缓存依赖
          'class'=>'system.caching.dependencies.CDbCacheDependency',//引入数据库缓存
          'sql'=>'select count(id) from {{goods}}',//根据数据库变化生成缓存,这里是当数据总数发生变化时更新缓存
      ),
    )
    )){
    ?>
      <h1><?php echo '片段缓存'.time() ?></h1>
    <?php
     //缓存结束
      $this->endCache();
  }
?>

其实还是喜欢这样写,看着也舒服一些

<?php        

    $dependency = [
        'class' => 'yii\caching\DbDependency',
        'sql' => 'select count(id) from goods',
    ];


        if($this->beginCache("<?php echo 'listcahe'.$page ?>",[
          'duration'=>10,          

          'dependency' => $dependency

          ])){
            ?>
               <h1><?php echo '片段缓存'.time() ?></h1>
            <?php
            $this->endCache();
        }
    ?>

官网地址:http://www.yiichina.com/doc/guide/2.0/caching-fragment