config.xml vs local.xml


17

Sự khác biệt giữa app / etc / config.xmlapp / etc / local.xml là gì?

Tôi cảm thấy như một số cấu hình được nhân đôi. Tôi luôn phải xử lý w / local.xml, vậy mục đích của việc có tất cả những thứ khác trong config.xml là gì và khi nào nó được sử dụng?

Câu trả lời:


15

config.xml và local.xml được tải cùng nhau, cùng với bất kỳ tệp xml nào khác mà bạn đặt app/local. Chúng được tải vàoMage_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 sẽ hoạt động nếu bạn di chuyển nội dung của config.xml sang local.xml và xóa hoàn toàn config.xml.
Sự tách biệt này tồn tại vì một lý do.
config.xml chứa các cài đặt (hãy gọi chúng) không phụ thuộc vào môi trường nơi Magento được cài đặt.
local.xml chứa các cài đặt phụ thuộc môi trường: kết nối DB, công cụ bộ đệm, khóa mã hóa, trình xử lý phiên.
Bằng cách này, một phần của các cài đặt có thể được phiên bản (config.xml) và bạn chỉ có một tệp nhỏ tùy thuộc vào môi trường.


4
Ngoài ra, trong quá trình nâng cấp, tệp config.xml sẽ bị ghi đè và local.xml sẽ không được ghi. Và cuối cùng, local.xml thực sự được tải hai lần, lúc bắt đầu và kết thúc phân tích cấu hình. Vì tất cả được hợp nhất trong một đối tượng cấu hình, nên mọi thứ bạn đặt trong tệp local.xml sẽ ghi đè mọi cấu hình khác trong bất kỳ mô-đun nào.
Petar Dzhambazov

4
@PetarDzhambazov "ở cuối phân tích cấu hình" không hoàn toàn chính xác / rõ ràng, vì các giá trị từ core_config_datađược phân tích cú pháp và được hợp nhất sau tệp localDB .
đánh dấu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.