tak*_*hin 7 architecture events zend-framework event-handling
我正在寻找一个基于Zend Framework的事件驱动架构的良好实现的参考.你能分享一下这个话题的经验吗?
我找到了两个解决方案,但尚未使用它们:
编辑:
例:
我在这个话题上没有太多的实践经验,但由于似乎没有人回复,我想我会分享我对此的看法......
这在 PHP 应用程序中可能有点棘手,因为它们通常只在请求期间运行,因此能够在这个短暂的阶段订阅和侦听通用事件的好处可能不是很大。
不过,我认为允许您更多地解耦代码可能会有一些好处。
据我所知,Symfony 调度程序看起来更好 - 主要是因为它看起来更简单。
我自己使用过一种dojo pubsub类型系统:基本上你有一个事件发布者,类可以向其发布事件。这是一种全局事件处理,您不必专门订阅类本身 - 而是订阅特定事件,并且哪个类发布该事件并不重要。
与订阅特定类相比,这样做的好处是代码更加解耦:在我的例子中,它是一个 ZF 应用程序,订阅事件的类可以简单地在引导程序中完成,而不必在控制器中进行订阅(或者发布者在哪里创建)
这种方法的缺点是它会使事物之间的依赖关系更难以跟踪。例如,您只看到一个事件发布调用,但如果不进一步深入研究代码,您不知道监听它的是什么类型。
就我而言,我真的不知道应用程序是否从使用这种架构中获得了任何好处 - 事实上,我曾多次考虑完全删除它,而只使用直接侦听事件的对象。