ecshop缓存函数的一点小改动

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

ecshop里在includes\lib_base.php有两个实现把查询结果存到缓存文件的函数
一个是写缓存:write_static_cache($cache_name, $caches);
另一个是读缓存:read_static_cache($cache_name);

但是对于读缓存没有缓存时间的判断机制,在这里我对read_static_cache加了一个参数read_static_cache($cache_name,$cache_time=0)实现了缓存时间的控制,可能对二次开发的人有些用处:
原函数不帖了,只贴出改后的函数:
function read_static_cache($cache_name,$cache_time=0)
{
if ((DEBUG_MODE & 2) == 2)
{
return false;
}
static $result = array();
if (!empty($result[$cache_name]))
{
return $result[$cache_name];
}
$cache_file_path = ROOT_PATH . '/temp/static_caches/' . $cache_name . '.php';
;
if (file_exists($cache_file_path) && ( $cache_time==0 ||gmtime()-@filemtime($cache_file_path) < $cache_time))
{
include_once($cache_file_path);
$result[$cache_name] = $data;
return $result[$cache_name];
}
else
{
return false;
}
}

希望对大家有用

回答:
这个好用。谢谢楼主分享了。。。

不大懂这是干什么的

if (file_exists($cache_file_path) && ( $cache_time==0 ||gmtime()-@filemtime($cache_file_path) < $cache_time))

这代码啥意思啊?没看明白



filemtime()-->获取文件的创建时间



今天又用上了回来温习一下这个贴子,别看改动小,作用还是挺大的,为ecshop的cache机制加上了过期失效的机制

ecshop原来什么时候创建和删除缓存的呢?