ZendFramework中使用Cache缓存机制


如下图所示建立工程:

  代码如下:

<?php
/**
*IndexController-Thedefaultcontrollerclass
* 
*@author
*@version 
*/
require_once'Zend/Controller/Action.php';
require_once'Zend/Cache.php';
require_once'Zend/Registry.php';
require_once'Zend/Db.php';
require_once'Zend/Db/Table.php';;
classIndexControllerextendsZend_Controller_Action 
{
  publicfunctioninit() 
  { 
    $params=array('host'=>'localhost', 
            'username'=>'root', 
            'password'=>'root', 
            'dbname' =>'mysql'); 
    $db=Zend_Db::factory('Pdo_Mysql',$params); 
    Zend_Db_Table::setDefaultAdapter($db); 
    Zend_Registry::set('db',$db); 
  } 
  publicfunctionindexAction() 
  {
    $frontendOptions=array(
      'lifeTime'=>7200,//两小时的缓存生命期
      'automatic_serialization'=>true
    );
    $backendOptions=array(
      'cache_dir'=>'C:/tmp/'//放缓存文件的目录
    );
    //取得一个Zend_Cache_Core对象
    $cache=Zend_Cache::factory('Core', 
                  'File', 
                  $frontendOptions, 
                  $backendOptions);
    if(!$result=$cache->load('myresult')){
      //缓存不命中;连接到数据库
      $dbAdapter=Zend_Registry::get('db');
      $result=$dbAdapter->query('SELECT*FROMuser')->fetchAll();
      $cache->save($result,'myresult');
      echo"Thisoneisfromdatabase!<br/>";
    }else{
      //cachehit!shoutsothatweknow
      echo"Thisoneisfromcache!<br/>";
    }
    print_r($result);              
  }
}


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3