标签:官方文档 处理 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