config.xml vs local.xml

17

Qual é a diferença entre app / etc / config.xml e app / etc / local.xml ?

Eu sinto que algumas configurações são duplicadas. Eu sempre tenho que lidar com w / local.xml, então qual é o objetivo de ter todas essas outras coisas no config.xml e quando é usado?

veilig
fonte

Respostas:

15

config.xml e local.xml são carregados juntos, juntamente com qualquer outro arquivo xml que você colocar app/local. Eles são carregados emMage_Core_Model_Config::loadBase()

public function loadBase()
    {
        $etcDir = $this->getOptions()->getEtcDir();
        $files = glob($etcDir.DS.'*.xml');
        $this->loadFile(current($files));
        while ($file = next($files)) {
            $merge = clone $this->_prototype;
            $merge->loadFile($file);
            $this->extend($merge);
        }
        if (in_array($etcDir.DS.'local.xml', $files)) {
            $this->_isLocalConfigLoaded = true;
        }
        return $this;
    } 

O Magento funcionará se você mover o conteúdo do config.xml para local.xml e remover completamente o config.xml.
Essa separação existe por um motivo.
O config.xml contém (vamos chamá-los) configurações que não dependem do ambiente em que o Magento está instalado.
local.xml contém configurações dependentes do ambiente: conexão com o banco de dados, mecanismo de cache, chave de criptografia, manipulador de sessões.
Dessa forma, parte das configurações pode ser versionada (config.xml) e você possui apenas um arquivo pequeno, dependendo do ambiente.

Marius
fonte
4
Também durante a atualização, o config.xml será substituído e o local.xml não será. E, finalmente, o local.xml é realmente carregado duas vezes, no início e no final da análise da configuração. Como tudo é mesclado em um objeto de configuração, qualquer coisa que você colocar em local.xml substituirá qualquer outra configuração em qualquer módulo.
Petar Dzhambazov
4
@PetarDzhambazov "no final da análise da configuração" não está totalmente correto / claro, pois os valores de core_config_datasão analisados ​​e mesclados após local.xml .
benmarks