是否可以为站点的实时,登台和开发版本提供不同的config.xml文件.
我认为应该有一个live.xml,local.xml和staging.xml,这些应该设置一次,然后通过htaccess环境变量或其他东西控制
这可能吗?
不,没有任何东西可以支持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;
}
Run Code Online (Sandbox Code Playgroud)
您可以为此模型创建一个类重写,它将根据环境更改$ filename,然后加载相应的配置文件.
虽然这是一个有趣的想法,但我认为这不是一个好主意.环境的差异应该在部署级别上处理,并且模块的config.xml文件中不应该包含任何特定于环境的信息.环境特定信息保存在一个位置
app/etc/local.xml
Run Code Online (Sandbox Code Playgroud)
您的构建/部署系统应根据需要修改local.xml,具体取决于您要部署到的环境.
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |