config.xml과 local.xml


17

app / etc / config.xmlapp / etc / local.xml 의 차이점은 무엇입니까 ?

일부 구성이 중복 된 것 같습니다. 나는 항상 local.xml을 다루어야하므로 config.xml에 다른 모든 것들을 갖는 목적은 무엇이며 언제 사용됩니까?

답변:


15

config.xml 및 local.xml은에 배치 한 다른 xml 파일과 함께 함께로드됩니다 app/local. 그들은에로드Mage_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;
    } 

config.xml의 내용을 local.xml로 이동하고 config.xml을 완전히 제거하면 Magento가 작동합니다.
이 분리는 이유가 있습니다.
config.xml에는 Magento가 설치된 환경에 의존하지 않는 설정이 포함되어 있습니다.
local.xml에는 DB 연결, 캐시 엔진, 암호화 키, 세션 처리기 등 환경에 따른 설정이 포함되어 있습니다.
이 방법으로 설정의 일부를 버전화할 수 있으며 (config.xml) 환경에 따라 작은 파일 만 있습니다.


4
또한 업그레이드 중에 config.xml을 덮어 쓰고 local.xml은 덮어 쓰지 않습니다. 마지막으로 local.xml은 실제로 구성 구문 분석의 시작과 끝에 두 번로드됩니다. 하나의 구성 객체에 모두 병합되어 있으므로 local.xml에 넣은 모든 것은 모든 모듈의 다른 구성보다 우선합니다.
Petar Dzhambazov

4
@PetarDzhambazov "구성 구문 분석이 끝났을 때"는 local.xmlcore_config_data 이후 의 값 이 구문 분석되고 병합되므로 완전히 정확하지는 않습니다 .
benmarks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.