让CodeIgniter数据库缓存自动过期的处理的方法
CachefilesDONOTexpire.Anyqueriesthathavebeencachedwillremaincacheduntilyoudeletethem.
感觉太弱智了,非常不方便。修改一下db类,在开启缓存时设置一个过期时间,到期自动缓存自动失效。
1:CIdatabase/DB_dirver.php中1021行cache_on函数替换为
functioncache_on($expire_time=0)//addparmexpiretime-缓存过期时间 { $this->cache_expire_time=$expire_time;//addbykenvin $this->cache_on=TRUE; returnTRUE; }
2:CIdatabase/DB_cache.php中90行read函数if(FALSE===($cachedata=read_file($filepath)))一行前面加上
//判断是否过期//cache_expire_time if(!file_exists($filepath)){ returnfalse; } if($this->db->cache_expire_time>0&&filemtime($filepath)db->cache_expire_time){ returnfalse; }
这样,在需要开启缓存的地方,由以前的$this→db→cache_on();改为
$this→db→cache_on($SEC);
$SEC为缓存过期时间,以秒为单位。如$this→db→cache_on(60);表示缓存60秒后过期。