Zend Framework应用程序中的事件

时间:2011-04-30 13:06:52

标签: zend-framework events event-handling architecture

我正在寻找一个基于Zend Framework的事件驱动架构的良好实现的参考。你能分享一下这个话题的经验吗?

我找到了两个解决方案,但尚未使用它们:

编辑:

示例:

1 个答案:

答案 0 :(得分:4)

我在这个主题上没有太多的实践经验,但由于似乎没有其他人回复,我想我会分享我对此的看法......

这在PHP应用程序中可能有点棘手,因为它们通常只在请求期间运行,因此在短时间内能够订阅和侦听通用事件的好处可能不会很大。 / p>

但是,我认为允许您更多地解耦代码会有一些好处。

据我所知,Symfony调度员看起来更好 - 主要是因为它看起来更简单。

我自己使用了一种dojo pubsub类型的系统:基本上你有一个事件发布者,类可以发布事件。这是一种全局事件处理,您没有专门订阅类本身 - 而是订阅特定事件,并且哪个类发布事件无关紧要。

这与订阅特定类的好处是代码更加分离:在我的情况下,它是一个ZF应用程序,订阅事件的类可以简单地在引导程序中执行,而不是必须执行控制器中的订阅(或创建发布者的地方)

这种方法的缺点是它可以使事物之间的依赖关系更难跟踪。例如,您只看到一个事件发布调用,但是如果不进一步深入代码,您就不知道会听到什么样的事情。

在我的情况下,我真的不知道应用程序是否从使用这种架构中获得任何好处 - 实际上我已经多次考虑完全删除它并只使用直接监听事件的对象。