function readData($cacheFile=’default_cache.txt’){
$cacheFile = $this->cache_dir.”/”.$cacheFile;
if(file_exists($cacheFile)&&filemtime($cacheFile)>(time()-$this-
>expireTime)){
$data=$this->display_cache($cacheFile);
}else{
$data=”from here wo can get it from mysql database,update
time is <b>”.date(‘l dS \of F Y h:i:s A’).”</b>, 过期时间是 :”.date(‘l dS \of F Y
h:i:s A’,time() $this->expireTime).”———-”;
$this->cache_page($cacheFile,$data);
}
return $data;
}
}
?>
下面我打断这个代码逐行解释.
程序透析
这个缓存类(类没什么好怕的.请继续看)名称是 cache,有 2 个属性:
1. private $cache_dir;
2. private $expireTime=180;
$cache_dir 是缓存文件所放的相对网站目录的父目录, $expireTime(注释一)是我
们缓存的数据过期的时间,主要是这个思路:
当数据或者文件被加载的时候,先判断缓存文件存在不,返回 false ,文件最后修改时
间和缓存的时间和比当前时间大不,大的话说明缓存还没到期,小的话返回 false,当返回
false 的时候,读取原始数据,写入缓存文件中,返回数据。接着看程序:
function __construct($cache_dirname){
if(!@is_dir($cache_dirname)){
if(!@mkdir($cache_dirname,0777)){
$this->warn(‘缓存文件不存在而且不能创建,需要手动创建.’);
return false;
}
}
$this->cache_dir = $cache_dirname;
}
当类第一次被实例的时候构造默认函数带参数缓存文件名称,如文件不存在,创建一个
有编辑权限的文件夹,创建失败的时候抛出异常.然后把 cache
类的 $cache_dir 属性设
置为这个文件夹名称,我们的所有缓存文件都是在这个文件夹下面的.
function __destruct(){
echo ‘Cache class bye.’;
}
这是 class 类的析构函数,为了演示,我们输出一个字符串表示我们释放 cache 类资
源成功.