Нет, ничто не поддерживает это из коробки с 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 в зависимости от среды, в которой вы развертываете.