2011-01-28 62 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模块中的类的相同技术可用于重写本地或社区模块中的类。基于模块的系统的要点是运行核心系统的代码被插入/行为与其他人可能添加到系统中的代码相同。