Luc*_*ops 5 rewrite module class duplicates magento
我使用的是两种不同的Magento的模块,说First_Module和Second_Module它覆盖同一类.我想结合他们的功能.
我的假设是我可以First_Module从同一个类扩展复制类,Second_Module而后者又扩展了原始类.我想这样做,First_Module应该依赖Second_Module,所以我添加到模块的配置<depends>Second_Module</depends>.
我希望现在Second_Module首先加载配置加载器,并且它的不再有效的标签将被配置中的相同语句覆盖First_Module.但事实似乎并非如此.第一个rewrite似乎被使用.
我在做什么/理解错误或者这是如何工作的?也许我应该从配置中删除第二个模块的重写(我不想做它尽可能保持原始状态).
提前致谢.
Magento类自动加载器不是为一个类的多个覆盖而制作的,因为这个概念实际上没有任何意义.没有办法强制执行第二次覆盖尊重第一次覆盖,因此他们根本没有实现它.
此外,您通常不能依赖安装两个单独的模块(在核心模块之外),因此无论如何,您最好能够容纳其他覆盖.
如果您想完成此任务,请首先查看Magento的事件委派系统.许多听众可以在一个事件上进行操作,因此这对您来说可能是一个很自然的情况.
另外,正如其他人最近在一个问题中指出的那样,你可以创建同一个类的两个子类,并使用其中的每一个而不是原始子类.这将不允许您修改现有的系统行为,但如果您只需要扩展核心类,则可能就足够了.在这种情况下,您将直接调用这些类(如Mage::getClass("mymodule/extended_customer");.
希望能够对情况有所了解.
谢谢,约瑟夫马斯蒂