ECShop的相关配置信息是保存在数据库的shop_config表中的。实际应用中,为了提高性能,避免反复的数据库读取操作,ECShop会把配置信息缓存在/temp/static_caches/shop_config.php文件中。相关功能是/includes/lib_common.php文件中的load_config函数实现的。如果读取缓存文件失败,则会从数据库中读取并将结果缓存在缓存文件中。
/**
* 读结果缓存文件
*
* @params string $cache_name
*
* @return array $data
*/
function read_static_cache($cache_name)
{
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))
{
include_once($cache_file_path);
$result[$cache_name] = $data;
return $result[$cache_name];
}
else
{
return false;
}
}
这里ECShop有一个地方个人认为做的不够好,那就是ECShop不会对读取的缓存文件内容进行相关配置信息的校验,如果不小心损坏了缓存配置文件的内容,那样会导致一些莫名奇妙的错误(因为配置信息被破坏了),如果没有些PHP知识,普通人不容易找到具体问题所在,对用户不够友好。
解决方法:后台手动清除缓存即可。
已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/technique/903.html 欢迎订阅Eddy Blog。
Tags:ECShop