当前位置: 首页 > 图文教程 > 网络编程 > PHP > 再次研究下cache_lite

PHP
PHP新手总结的PHP基础知识
php实现gb2312和unicode间编码转换
用php语言实现数据库连接详细代码介绍
详细解析 PHP 向 MySQL 发送数据过程
利用PHP V5开发多任务应用程序
详细讲解PHP中缓存技术的应用
php escapeshellcmd多字节编码漏洞
《PHP设计模式介绍》导言
《PHP设计模式介绍》第一章 编程惯用法
《PHP设计模式介绍》第二章 值对象模式
《PHP设计模式介绍》第三章 工厂模式
《PHP设计模式介绍》第四章 单件模式
《PHP设计模式介绍》第五章 注册模式
《PHP设计模式介绍》第六章 伪对象模式
《PHP设计模式介绍》第七章 策略模式
《PHP设计模式介绍》第八章 迭代器模式
《PHP设计模式介绍》第九章 观测模式
《PHP设计模式介绍》第十章 规范模式
《PHP设计模式介绍》第十一章 代理模式
《PHP设计模式介绍》第十二章 装饰器模式

PHP 中的 再次研究下cache_lite


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 206 ::
收藏到网摘: n/a

晚上详细的看了下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', 12, 45);
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>";
}
?>