什么是getConfigData?

时间:2015-04-14 16:33:59

标签: magento

什么是 getConfigData ?和Magento中的getConfigData和getStoreConfigData之间的差异。

$this->getConfigData('shippingspecificcountry', $store_id);

我尝试使用我当前的商店ID和0,两者都给出了空数组。

任何人都可以解释上述方法。

1 个答案:

答案 0 :(得分:5)

你的问题可能会使用更多的背景 - 缺乏这一点。

Mage::getStoreConfig方法是全局Mage类的静态方法,可以访问存储在Magento配置树中的配置值。 Magento的配置树由

创建
  1. app/etc/*.xml
  2. 中加载所有XML文件
  3. 从`app / etc / modules / * .xml'加载所有XML文件
  4. 合并活动模块中的所有config.xml个文件
  5. 合并core_config_data中设置的任何值(通过管理员中的System -> Configuration
  6. 由于Magento的配置太大,许多模块开发人员都会添加getConfigDatagetConfig等方法,以便轻松获取特定的配置值。例如,请考虑这个过于简单的示例

    Mage::getStoreConfig('foo/baz/bar')
    

    VS

    $this->getConfig('bar');
    
    ....
    public function getConfigData($key)
    {
        return Mage::getStoreConfig('foo/baz/' . $bar);
    }
    

    第二个允许客户端程序员更简洁的代码。

    您可以在Magento various shipping carriers

    的基类中看到这样的示例
    public function getConfigData($field)
    {
        if (empty($this->_code)) {
            return false;
        }
        $path = 'carriers/'.$this->_code.'/'.$field;
        return Mage::getStoreConfig($path, $this->getStore());
    }
    

    此处getConfigData方法将自动在carriers节点中查找配置密钥 - 使用运营商的_code作为子节点,并检查实例化商店代码的承运人对象。

    getConfigData方法的行为会有所不同,具体取决于您使用的类/对象,但希望这足以让您指向正确的方向。