如何覆盖Magento中的本地模块?

时间:2011-01-28 09:05:54

标签: magento

有很多关于如何在Magento中覆盖核心模块的例子,但是如何覆盖本地模块呢?

1 个答案:

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