最模板 - 外贸网站建设,外贸网站模板

最模板

当前位置: 首页 > Magento > Magento教程 >

Magento缓存与全局配置文件缓存(7)

时间:2014-06-02 07:38来源:未知 作者:最模板zuimoban 点击:
这部分代码总体上实现了把全局对象拆分成几段缓存: config_globalconfig_global_adminconfig_global_adminhtmlconfig_global_installconfig_global_websitesconfig_global_stores_defaultc

这部分代码总体上实现了把全局对象拆分成几段缓存:

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方法:

1
2
3
4
5
6
    protected function _initModules()
    {
        if (!$this->_config->loadModulesCache()) {
        }
        return $this;
}

实际调用Config的loadModulesCache方法加载缓存,如果能加载就使用加载的缓存文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Mage_Core_Model_Config
    public function loadModulesCache()
    {
        if (Mage::isInstalled(array('etc_dir' => $this->getOptions()->getEtcDir()))) {
            if ($this->_canUseCacheForInit()) {
                $loaded = $this->loadCache();
                
                if ($loaded) {
                    $this->_useCache = true;
                    return true;
                }
            }
        }
        return false;
    }

这里重点是loadCache方法,这个负责加载缓存,如果成功加载使用_useCache标识在使用缓存:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// lib/Varien/Simplexml/Config
    public function loadCache()
    {
        if (!$this->validateCacheChecksum()) {
            return false;
        }
 
        $xmlString = $this->_loadCache($this->getCacheId());
        $xml = simplexml_load_string($xmlString, $this->_elementClass);
        if ($xml) {
            $this->_xml = $xml;
            $this->setCacheSaved(true);
            return true;
        }
 
        return false;
    }
(责任编辑:最模板)
------分隔线----------------------------
栏目列表
推荐内容