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

Tom*_*een 3 magento

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

Ala*_*orm 7

您不覆盖模块,覆盖(或者,更恰当地说,rewrite见下文)属于模块的类,或属于常规lib文件夹.

根据你的措辞,我认为你的意思是"从一个班级开始"并把它放在" "中?如果是这样,那么你大多不能.代码池有效,因为magento添加了四条到PHP包含路径的路径.app/code/core/app/code/local/

app/code/local
app/code/community
app/code/core
lib
Run Code Online (Sandbox Code Playgroud)

然后,当自动加载器说

include('Mage/Module/Path/To/File.php');
Run Code Online (Sandbox Code Playgroud)

如果先检查local文件夹,然后是community文件夹,那么核心文件夹,最后是lib文件夹.该local文件夹总是获胜.

如果您的类是Model,Helper或Block,我建议使用基于模块的重写系统.您用于重写Core模块中的类的相同技术可用于重写本地或社区模块中的类.基于模块的系统的要点是运行核心系统的代码的插入/行为与其他人可能添加到系统的代码相同.

  • "用于重写Core模块中的类的相同技术可用于重写本地或社区模块中的类."---但是如何重写本地代码池中的本地模块? (3认同)