Answers:
config.xml和local.xml以及您放置在中的任何其他xml文件一起加载app/local
。它们被装入Mage_Core_Model_Config::loadBase()
public function loadBase()
{
$etcDir = $this->getOptions()->getEtcDir();
$files = glob($etcDir.DS.'*.xml');
$this->loadFile(current($files));
while ($file = next($files)) {
$merge = clone $this->_prototype;
$merge->loadFile($file);
$this->extend($merge);
}
if (in_array($etcDir.DS.'local.xml', $files)) {
$this->_isLocalConfigLoaded = true;
}
return $this;
}
如果将config.xml的内容移动到local.xml并完全删除config.xml,则Magento将起作用。
存在这种分离是有原因的。
config.xml包含(让我们称呼它们)不依赖于安装Magento的环境的设置。
local.xml包含与环境有关的设置:数据库连接,缓存引擎,加密密钥,会话处理程序。
这样,可以对部分设置进行版本控制(config.xml),并且根据环境,您只有一个小文件。
core_config_data
在local.xml之后进行了解析和合并。