我在3.1.66版扩展类spAccessCache中发现小错误

#1 SPBoy

1)错误特征为用其他非文件缓存(默认)时不能把 参数$args的内容导入到符号表,这是因为新版本的类传递参数方式不同,导致其他缓存方式无法使用。
 
//37行
//@list($method, $name, $value, $life_time) = $args;//原来代码
extract(array_shift($args));//修正后代码

2)错误特征为没有把'cachevalue'字段的内容赋值给变量$result ,解决方法是用array_pop取出内容并且同时清空结果。
 
//135行
if(! $result = $this->find(array('cachename'=>$name),'cacheid DESC','cachevalue'))return FALSE;//原来代码
if(! $result = array_pop($this->find(array('cachename'=>$name),'cacheid DESC','cachevalue')))return FALSE;//修正后代码

2011-08-26 17:44:05

#2 jake

:handshake  好的,这两天会修改改进。

2011-08-26 20:43:53

#3 jake

已发SVN

2011-08-27 09:40:36

#4 linvx

回复 3 jake


    群主很速度啊,支持一个...

2011-08-27 11:03:06

#5 SPBoy

jake老大
37行
extract(array_pop($args));
是一定要这样才能赋值的,用
list
只能接受
array(a,b,c)
格式的数字索引的数组也就是原来的参数传递方式详细情况在php手册list条

2011-08-30 01:17:07

#6 jake

回复 5 SPBoy


   非常感谢提醒,已经全线修正了,:handshake

2011-08-30 09:22:55