background image

 
        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 类资
源成功.