Различные конфигурационные файлы Magento для live и staging - PullRequest
2 голосов
/ 31 марта 2011

Возможно ли иметь разные файлы config.xml для live, staging и dev версий сайта.

Я думаю, что должны быть live.xml, local.xml и staging.xml и этидолжен быть настроен один раз и затем управляться через переменную окружения htaccess или что-то еще

Возможно ли это?

1 Ответ

5 голосов
/ 01 апреля 2011

Нет, ничто не поддерживает это из коробки с Magento, и я не знаю ни одного модуля, который бы предлагал эту функциональность.,Все конфигурационные файлы Magento загружены (или не должны меня удерживать) через класс Mage_Core_Model_Config.

#File: app/code/core/Mage/Core/Model/Config.php
public function loadModulesConfiguration($fileName, $mergeToObject = null, $mergeModel=null)
{
    $disableLocalModules = !$this->_canUseLocalModules();

    if ($mergeToObject === null) {
        $mergeToObject = clone $this->_prototype;
        $mergeToObject->loadString('<config/>');
    }
    if ($mergeModel === null) {
        $mergeModel = clone $this->_prototype;
    }
    $modules = $this->getNode('modules')->children();
    foreach ($modules as $modName=>$module) {
        if ($module->is('active')) {
            if ($disableLocalModules && ('local' === (string)$module->codePool)) {
                continue;
            }
            $configFile = $this->getModuleDir('etc', $modName).DS.$fileName;
            if ($mergeModel->loadFile($configFile)) {
                $mergeToObject->extend($mergeModel, true);
            }
        }
    }
    return $mergeToObject;
}

Вы можете создать переписать класс для этой модели, который изменит $ filename в зависимости от среды, а затем загрузить соответствующий файл конфигурации.

Хотя это интересная идея, я не думаю, что она хорошая.Различия в среде - это то, что должно обрабатываться на уровне развертывания, и в файле config.xml модуля в любом случае не должно быть информации, специфичной для среды.Информация, относящаяся к среде, хранится в одном месте

app/etc/local.xml

Ваша система сборки / развертывания должна при необходимости изменять local.xml в зависимости от среды, в которой вы развертываете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...