$ _SERVER ['MAGE_RUN_TYPE']'商店'和'网站'有什么区别


8

对于创建多商店magento,我们使用以下代码

$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : '';
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';
Mage::run($mageRunCode, $mageRunType);

如果我们在代码中使用website代替,会有什么区别store$_SERVER['MAGE_RUN_TYPE'] : 'store';

Answers:


13

我想在这里更正KESHAV_PHP。

$_SERVER['MAGE_RUN_TYPE']定义最终用于选择商店的实体类型。如果通过传递此处来定义特定商店store,那么将加载商店。这意味着(与keshav所写的相反),无论商店是否是默认网站的一部分,这都没有关系。

如果通过website,则将加载商店,这是该网站的默认设置。

$_SERVER['MAGE_RUN_CODE']定义了的网站或商店,在表中所定义的代码core_website.codecore_store.code

整个过程可以在这里找到:

\Mage_Core_Model_App::_initCurrentStore
switch ($scopeType) {
        case 'store':
            $this->_currentStore = $scopeCode;
            break;
        case 'group':
            $this->_currentStore = $this->_getStoreByGroup($scopeCode);
            break;
        case 'website':
            $this->_currentStore = $this->_getStoreByWebsite($scopeCode);
            break;
        default:
            $this->throwStoreException();
    }

getStoreByWebsite只得到了默认的组,然后调用getStoreByGroup它得到默认存储为组。


神话般的解释。+ 1为挖掘核心:)
拉杰夫K Tomy 2014年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.