在elance.com上有一个关于getStoreConfig函数的问题。很可能这样的问题存在于认证考试中。
Which one of the following xpaths can be read using Mage::getStoreConfig('some/value')?
Answers:
• default/some/value
• some/value
• some/value/default
• global/default/some/value
• stores/some/value
此服务告诉正确的答案是'stores / some / value'。但如果我们查看代码,我们会看到:
public static function getStoreConfig($path, $store = null)
{
return self::app()->getStore($store)->getConfig($path);
}
public function getConfig($path)
{
if (isset($this->_configCache[$path])) {
return $this->_configCache[$path];
}
$config = Mage::getConfig();
$fullPath = 'stores/' . $this->getCode() . '/' . $path;
$data = $config->getNode($fullPath);
if (!$data && !Mage::isInstalled()) {
$data = $config->getNode('default/' . $path);
}
if (!$data) {
return null;
}
return $this->_processConfigValue($fullPath, $path, $data);
}
这意味着正确答案是:
$fullPath = 'stores/' . $this->getCode() . '/' . $path;
(stores/default{or some another store}/some/value)
或
$data = $config->getNode('default/' . $path);
(default/some/value)
如果我们调试这个,我们可以看到,商店只有admin和storenames子节点。有人可以澄清一下吗?我错过了什么吗?
答案 0 :(得分:2)
你说得对,Elance考试错了。
可能的Xpath是:
default/some/value
(默认配置)stores/[store]/some/value
(商店配置)