天天看點

magento -- 如何禁用Magento的子產品

當你建立一個新的magento項目用到很多第三方子產品時,可能會遇到一些奇怪的問題,這些問題可能是某個子產品造成,也有可能是某些子產品共用時帶來的(相容問題)。為了檢查是哪些子產品帶來的問題,暫時的禁用掉一些子產品是很有用的方式。禁用子產品有多種方式可選。

magento背景禁用子產品

進入magento的背景,找到system > configuration > advanced > disable modules

output,在這裡你可以很輕松的禁用掉一些子產品。你也可以選擇配置的生效範圍(下拉框在頁面的左上角),以做到在特定的商店(多店情況下)禁用特定的子產品。這種方式适用于大多數情況,也是禁用子產品的首選方式。

這裡有一點疑惑,這個疑惑隻能透過審視magento的初始化過程來解釋:magento首先讀取大量xml檔案,并解析它們,然後才會知道需要使用哪個資料庫。是以流程是先讀取xml配置檔案,再讀取資料庫裡的配置。因為這種方式禁用子產品的設定全部都存在資料庫裡面,是以就算在magento背景已經禁用了某些子產品,那些子產品的檔案還是會在初始化的時候包含進來。

編輯xml檔案

性能更好的方式(但不是更友善的方式,甚至有一點點困難)是直接在xml檔案中禁用這些子產品。在app/etc/modules目錄下你可以找到一批xml檔案,其中magento的核心子產品隻是配置于其中兩個檔案。大多數情況下,你能為每個第三方子產品找到獨立的xml配置檔案。當你打開一個xml檔案,比如說我們的magebridge擴充,你會看到如下代碼:

<config>

<modules>

<jira_magebridge>

<active>true</active>

<codepool>community</codepool>

<depends>

<mage_api />

</depends>

</jira_magebridge>

</modules>

</config>

現在,修改active标簽裡的true為false,你就禁用了這個子產品

<active>false</active> 

最後别忘了重新整理magento的緩存。

禁用local子產品

但是以上的方法也許還是不能解決你的問題,如果有些子產品是放置在app/code/local目錄下面,他也許會覆寫掉一些magento的核心檔案,而不需要使用xml檔案。為了避開這個問題,你需要暫時禁用所有local子產品。

這個可以通過編輯app/etc/local.xml檔案來實作,找到disable_local_modules标簽,把值改成true

<disable_local_modules>false</disable_local_modules> 

這樣也許能幫你找到問題所在,當然當系統發生嚴重問題的時候,你需要檢查很多方面來找錯,不過這至少是一個開始。

原文連結位址:http://www.yireo.com/tutorials/magento/magento-administration/381-disabling-magento-modules

ps:我自己找到這篇文章并不是為了查錯,而是為了給magento提速,徹底禁用一些用不到的子產品肯定對性能提升有幫助,像我自己的項目隻針對國内市場,客戶也是國内客戶,是以凡是國内用不到的功能都可以用修改xml檔案的方式徹底屏蔽掉,希望多少能提點速吧。