ppphp icon indicating copy to clipboard operation
ppphp copied to clipboard

整合配置类的get和all方法

Open moling3650 opened this issue 9 years ago • 1 comments

修复get方法的一个bug:当配置文件已缓存而$name不存在时,没有正确返回false。 整合get和all方法:两者的代码相似度太高,可以重用封装一个方法

moling3650 avatar Sep 15 '16 03:09 moling3650

为什么说get和all分开的效率比较明显?get的前半部分都必须和all一样的,要不然就是验证不够完备,get的复杂度比以前增加1(多了is_null($name) 的判断)。

if(isset(self::$conf[$file][$name])) {
     return self::$conf[$file][$name];
else
    ...

这种写法只是看上去效率很高,但实际上如果文件已经缓存过,而$name是不存在时,还是要重复去include的。为了提高O(1)的性能写多十行完全一样的代码,这决定值得商酌。储存mysql的道理也是一样的,也是多了一句is_null($name) 的判断,其他流程是完全一样的。

moling3650 avatar Sep 15 '16 18:09 moling3650