2011-01-28 70 views
3

有很多關於如何覆蓋Magento核心模塊的例子,但是如何覆蓋本地模塊?我該如何覆蓋Magento中的本地模塊?

+0

只需去編輯你實際不需要覆蓋本地模塊的代碼 – 2011-01-28 09:09:40

+0

,但是模塊在某些情況下只能被覆蓋,並且想知道是否可以覆蓋本地代碼池中的模塊。 – 2011-01-28 09:12:36

回答

7

您不會覆蓋模塊,而是覆蓋(或更正確地說rewrite,請參見下文)屬於某個模塊的類別,或者屬於一般的lib文件夾。

根據你的措詞,我認爲你的意思是「從app/code/core/上課」並將其放入「app/code/local/」?如果是這種情況,那麼你大多不能。代碼池可以工作,因爲magento向PHP包含路徑添加了四條路徑。

app/code/local 
app/code/community 
app/code/core 
lib 

然後,當自動加載說

include('Mage/Module/Path/To/File.php'); 

如果將首先檢查local文件夾,然後community文件夾,則文件夾中的核心,最後lib文件夾。 local文件夾總是勝利。

如果你的課程是Model,Helper或Block,我建議使用基於模塊的重寫系統。用於重寫Core模塊中的類的相同技術可用於重寫本地或社區模塊中的類。基於模塊的系統的要點是運行核心系統的代碼被插入/行爲與其他人可能添加到系統中的代碼相同。