【发布时间】:2011-04-29 02:50:16
【问题描述】:
假设,核心中有一个事件观察器类。我可以覆盖它。但是,安全吗?我的意思是,它会影响观察者类的其他功能吗?
例如,如果核心观察者类中有两个函数,而我确实只覆盖了一个函数。那么,其他功能是否会像以前一样安全运行。
我认为它类似于模型覆盖,应该是安全的。我说的对吗?
编辑:-
例如,
- 核心中有一个类CoreClassA。
- CoreClassA中有一个函数coreFunctionA。
- 在这个 coreFunctionA 中调度了一个事件 core_event_a。
- 另一个核心模块 CoreModuleB 正在使用 core_event_a 创建事件观察器。
- 因此,无论何时调度 core_event_a,都会调用 CoreModuleB 的事件观察器。
- 假设,CoreModuleB 的事件观察器包含两个函数。一个用于 core_event_a 调度操作(让我们将其命名为 eventDispatchA),另一个用于其他事件调度操作(例如 eventDispatchX)。
- 在我的自定义模块中,我想覆盖 eventDispatchA。 基本上,我想更改 eventDispatchA 中的一些代码,或者我可能只想跳过/省略这个函数。我可以覆盖它。 但是,如果我这样做会影响 eventDispatchX 吗?或者,除了覆盖事件观察者之外,还有其他更好的方法吗?
【问题讨论】:
-
你能告诉我们你为什么要覆盖这个类吗?可能有更好的方法来达到同样的效果
-
已编辑。我希望我没有让它变得更复杂。 :)
标签: php events magento overriding observer-pattern