config.xml vs local.xml


17

Qual è la differenza tra app / etc / config.xml e app / etc / local.xml ?

Sento che alcune configurazioni sono duplicate. Devo sempre occuparmi di w / local.xml, quindi qual è lo scopo di avere tutte quelle altre cose in config.xml e quando viene usato?

Risposte:


15

config.xml e local.xml vengono caricati insieme, insieme a qualsiasi altro file xml inserito app/local. Sono caricatiMage_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 funzionerà se sposti i contenuti di config.xml in local.xml e rimuovi interamente config.xml.
Questa separazione esiste per un motivo.
config.xml contiene (chiamiamoli) impostazioni che non dipendono dall'ambiente in cui è installato Magento.
local.xml contiene impostazioni dipendenti dall'ambiente: connessione DB, motore cache, chiave di crittografia, gestore sessioni.
In questo modo una parte delle impostazioni può essere versionata (config.xml) e hai solo un piccolo file a seconda dell'ambiente.


4
Inoltre durante l'aggiornamento config.xml verrà sovrascritto e local.xml non lo sarà. E infine local.xml viene effettivamente caricato due volte, all'inizio e alla fine dell'analisi di configurazione. Dal momento che è tutto unito in un oggetto config, qualsiasi cosa tu metta in local.xml sovrascriverà qualsiasi altra configurazione in qualsiasi modulo.
Petar Dzhambazov,

4
@PetarDzhambazov "alla fine dell'analisi di configurazione" non è completamente corretto / chiaro, poiché i valori di core_config_datavengono analizzati e uniti dopo local.xml .
benmarks
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.