码迷,mamicode.com
首页 > 系统相关 > 详细

Phalcon中的model Forcing Cache(模型强制缓存)小坑

时间:2017-04-09 18:16:43      阅读:1047      评论:0      收藏:0      [点我收藏+]

标签:官方文档   处理   share   pen   for   har   list   加密   gets   

跟着phalcon官方文档走到模型强制缓存时候,老发生一个错误 : Cache didn‘t return a valid resultset .

原话的意思是,缓存没有返回一个 有效的结果集。

modelsCache如下:

/**
* @return Redis
*/
public function getModelCache()
{
$frontend = new Json([
"lifetime" => $this->config->Model->lifetime,
]);

return new Redis($frontend, [
"host" => $this->config->Model->host,
"port" => $this->config->Model->port,
"persistent" => false,
"statsKey" => $this->keysListName,
"index" => $this->config->Model->database,
]);
}
看了下github上的源代码:

let cache = this->_dependencyInjector->getShared(cacheService);
if typeof cache != "object" {
                  throw new Exception("Cache service must be an object");
}

let result = cache->get(key, lifetime);
if result !== null {

               if typeof result != "object" {
                                  throw new Exception("Cache didn‘t return a valid resultset");
              }

result->setIsFresh(false);

......

当缓存返回的结果不为对象时,就会抛出此异常,值得注意的是使用json,base64等加密类处理之后返回的数据已经丢失原本的类信息。因此会出错。因此可以用自带的Data类,来加解密数据。Data类使用的加解密是PHP的serialize和unserialize.不会丢失原数据信息。

Phalcon中的model Forcing Cache(模型强制缓存)小坑

标签:官方文档   处理   share   pen   for   har   list   加密   gets   

原文地址:http://www.cnblogs.com/lanhuabao/p/6685593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!