config.xml vs local.xml

17

Was ist der Unterschied zwischen app / etc / config.xml und app / etc / local.xml ?

Ich habe das Gefühl, dass einige Konfigurationen dupliziert werden. Ich muss mich immer mit w / local.xml auseinandersetzen. Was ist also der Zweck, all das andere Zeug in config.xml zu haben und wann wird es verwendet?

veilig
quelle

Antworten:

15

config.xml und local.xml werden zusammen mit jeder anderen XML-Datei geladen, in die Sie sie einfügen app/local. Sie werden in geladenMage_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;
    } 

Magento funktioniert, wenn Sie den Inhalt von config.xml in local.xml verschieben und config.xml vollständig entfernen.
Diese Trennung besteht aus einem Grund.
config.xml enthält (nennen wir sie) Einstellungen, die nicht von der Umgebung abhängen, in der Magento installiert ist.
local.xml enthält umgebungsabhängige Einstellungen: DB-Verbindung, Cache-Engine, Verschlüsselungsschlüssel, Sitzungshandler.
Auf diese Weise kann ein Teil der Einstellungen versioniert werden (config.xml) und Sie haben je nach Umgebung nur eine kleine Datei.

Marius
quelle
4
Auch während des Upgrades wird config.xml überschrieben und local.xml nicht. Schließlich wird local.xml zu Beginn und am Ende der Konfigurationsanalyse tatsächlich zweimal geladen. Da alles in einem Konfigurationsobjekt zusammengeführt wird, überschreibt alles, was Sie in local.xml einfügen, jede andere Konfiguration in einem Modul.
Petar Dzhambazov
4
@PetarDzhambazov "am Ende der Konfigurationsanalyse" ist nicht ganz korrekt / klar, da die Werte von core_config_datanach local.xml analysiert und zusammengeführt werden .
benmarks