config.xml vs local.xml


17

ความแตกต่างระหว่างapp / etc / config.xmlและapp / etc / local.xmlคืออะไร

ฉันรู้สึกว่าการกำหนดค่าบางอย่างซ้ำซ้อน ฉันมักจะต้องจัดการกับ w / 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;
    } 

Magento จะใช้งานได้ถ้าคุณย้ายเนื้อหาของ config.xml ไปที่ local.xml และลบ config.xml ทั้งหมด
การแยกนี้มีอยู่ด้วยเหตุผล
config.xml มีการตั้งค่า (เรียกว่าพวกมัน) ที่ไม่ได้ขึ้นอยู่กับสภาพแวดล้อมที่ติดตั้ง Magento
local.xml มีการตั้งค่าที่ขึ้นอยู่กับสภาพแวดล้อม: การเชื่อมต่อฐานข้อมูล, เอ็นจินแคช, คีย์เข้ารหัส, ตัวจัดการเซสชั่น
วิธีนี้เป็นส่วนหนึ่งของการตั้งค่าสามารถกำหนดรุ่น (config.xml) และคุณมีไฟล์ขนาดเล็กขึ้นอยู่กับสภาพแวดล้อม


4
นอกจากนี้ในระหว่างการอัพเกรด config.xml จะถูกเขียนทับและ local.xml จะไม่เป็นเช่นนั้น และในที่สุด local.xml จะถูกโหลดสองครั้งจริง ๆ เมื่อเริ่มต้นและสิ้นสุดการแยกวิเคราะห์การกำหนดค่า เนื่องจากมันถูกผสานทั้งหมดในหนึ่งวัตถุการตั้งค่าสิ่งที่คุณใส่ใน local.xml จะแทนที่การกำหนดค่าอื่น ๆ ในโมดูลใด ๆ
Petar Dzhambazov

4
@PetarDzhambazov "ในตอนท้ายของการตั้งค่าการแยก" ไม่ถูกต้องทั้งหมด / ชัดเจนเช่นค่าจากcore_config_dataมีการแยกวิเคราะห์และรวมอยู่ในหลังจากlocal.xml
benmarks
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.