让CodeIgniter数据库缓存自动过期的处理的方法

2015-01-24信息快讯网

按官方的说法,缓存设置后永不过期,除非你调用方法主动删除。这篇文章主要介绍了CodeIgniter数据库缓存自动过期的处理,需要的朋友可以参考下

CodeIgniter框架是一个非常小巧的PHP框架。CI自带数据库文件缓存,但按官方的说法,缓存设置后永不过期,除非你调用方法主动删除。

Cache files DO NOT expire. Any queries that have been cached will remain cached until you delete them.

感觉太弱智了,非常不方便。 修改一下db类,在开启缓存时设置一个过期时间,到期自动缓存自动失效。

1:CI database/DB_dirver.php 中 1021行 cache_on 函数替换为

function cache_on($expire_time=0) //add parm expire time - 缓存过期时间
{
$this->cache_expire_time = $expire_time; //add by kenvin
$this->cache_on = TRUE;
return TRUE;
}


2:CI database/DB_cache.php 中 90行 read 函数 if (FALSE === ($cachedata = read_file($filepath))) 一行前面加上

//判断是否过期 // cache_expire_time
if ( !file_exists($filepath) ) {
return false;
}
if ( $this->db->cache_expire_time > 0 && filemtime($filepath) db->cache_expire_time) {
return false;
}


这样,在需要开启缓存的地方,由以前的 $this→db→cache_on(); 改为
$this→db→cache_on($SEC); 

$SEC 为缓存过期时间,以秒为单位。 如 $this→db→cache_on(60);表示缓存60秒后过期。
PHP自动重命名文件实现方法
PHP中Header使用的HTTP协议及常用方法小结
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
CI框架装载器Loader.php源码分析
PHP has encountered a Stack overflow问题解决方法
完美实现wordpress禁止文章修订和自动保存的方法
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
php cookie中点号(句号)自动转为下划线问题
PHP图片自动裁切应付不同尺寸的显示
ThinkPHP 表单自动验证运用示例
PHP文件缓存内容保存格式实例分析
php中操作memcached缓存进行增删改查数据的实现代码
PHP中设置一个严格30分钟过期Session面试题的4种答案
一个简洁实用的PHP缓存类完整实例
简单实用的网站PHP缓存类实例
php中实现精确设置session过期时间的方法
PHP缓存机制Output Control详解
PHP5.3与5.5废弃与过期函数整理汇总
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
CodeIgniter启用缓存和清除缓存的方法
PHP捕获Fatal error错误的方法
CI框架中libraries,helpers,hooks文件夹详细说明
CI(CodeIgniter)框架中的增删改查操作
CI(CodeIgniter)框架配置
phpMyAdmin自动登录和取消自动登录的配置方法
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
Windows中使用计划任务自动执行PHP程序实例
php中session过期时间设置及session回收机制介绍
PHP常用的缓存技术汇总
PHP模板引擎Smarty的缓存使用总结
zf框架的zend_cache缓存使用方法(zend框架)
PHP中4个加速、缓存扩展的区别和选用建议
php 生成自动创建文件夹并上传文件的示例代码
php自动加载autoload机制示例分享
©2014-2024 dbsqp.com