有很多关于如何在Magento中覆盖核心模块的例子,但是如何覆盖本地模块呢?
答案 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模块中的类的相同技术可用于重写本地或社区模块中的类。基于模块的系统的要点是运行核心系统的代码的插入/行为与其他人可能添加到系统的代码相同。