这部分代码总体上实现了把全局对象拆分成几段缓存: config_global config_global_admin config_global_adminhtml config_global_install config_global_websites config_global_stores_default config_global_stores_admin config_global_stores_german config_global_stores_french config_global是被拆了admin等之后剩余的XML。这些缓存全部打上了CONFIG这个Tag,Config中的removeCache方法实际就是移除所有打上了这个Tag的缓存。 生成缓存就这样够一段了。下面如何加载缓存。还是从App的run方法进入,它之中运行的baseInit主要是初始化环境(_initEnvironment),初始化基础配置(app/etc/config.xml和local.xml,由_initBaseConfig调用Config的loadBase完成,说明这两个文件的内容尽管已经缓存,但是每次都会被读取)和生成缓存对象,接下来的_initModules方法:
实际调用Config的loadModulesCache方法加载缓存,如果能加载就使用加载的缓存文件:
这里重点是loadCache方法,这个负责加载缓存,如果成功加载使用_useCache标识在使用缓存:
|