再次研究下cache_lite

  晚上详细的看了下cache_lite,功能比我想象中的强大的多。当然目前我还没有发现它是否支持直接保存PHP代码来缓存的功能,不过我想应该是可以扩展实现的。

  这里有几个例子:

  

  <?

  require_once('../libs/cache/Lite.php');

  $options = array(

  'cacheDir' => '../cache/test/',

  'fileLocking' =>true,

  'writeControl'=>true,

  'readControl'=>false,

  'fileNameProtection'=>false,//关闭文件名安全模式。cache id和组名将直接应用到 cache文件的文件名,所以要小心使用特殊字符.

  'automaticSerialization'=>false,//关闭自动序列

  'hashedDirectoryLevel'=>2,//设置两级缓存路径

  'lifeTime' => 60

  );

  $Cache = new Cache_Lite($options);

  $id='test';

  if($data=$Cache->get($id,'test')){

  echo $data;

  }else{

  $data=time();

  $Cache->save($data);

  echo $data;

  }

  ?>

  

  对输出进行缓存

  

  <?

  require_once('../libs/cache/Lite.php');

  require_once('../libs/cache/Lite/output.php');

  $options = array(

  'cacheDir' => '../cache/test/',

  'lifeTime' => 60,

  'pearErrorMode' => CACHE_LITE_ERROR_DIE

  );

  $cache =new Cache_Lite_Output($options);

  if (!($cache->start('id_of_the_page'))) {

  // 没有发现Cache !

  echo 'test time:'.time().'<br>test<br>';

  $cache->end(); // 缓冲的输出现在被存储到一个cache文件中

  }

  ?>

  

  对函数进行缓存

  

  <?

  require_once('../libs/cache/Lite.php');

  require_once('../libs/cache/Lite/Function.php');

  $options = array(

  'cacheDir' => '../cache/test/',

  'lifeTime' => 3600,

  'pearErrorMode' => CACHE_LITE_ERROR_DIE

  );

  $cache = new Cache_Lite_Function($options);

  $cache->call('function_to_bench'1245);

  function function_to_bench($arg1$arg2)

  {

  echo "This is the output of the function function_to_bench($arg1, $arg2) !<br>";

  return "This is the result of the function function_to_bench($arg1, $arg2) !<br>";

  }

  ?>