我正在寻找一个基于Zend Framework的事件驱动架构的良好实现的参考.你能分享一下这个话题的经验吗?
我找到了两个解决方案,但尚未使用它们:
> http://framework.zend.com/wiki/display/ZFPROP/Zend_Event+-+Alvar+Vilu
> http://components.symfony-project.org/event-dispatcher/
编辑:
例:
> http://www.slideshare.net/beberlei/towards-the-cloud-eventdriven-architectures-in-php
我在这个主题上没有太多的实践经验,但由于似乎没有其他人回复,我想我会分享我对此的看法……
原文链接:/php/134317.html这在程序中可能有点棘手,因为它们通常仅在请求期间运行,因此在该短阶段期间能够订阅和侦听通用事件的好处可能不是很大.
但是,我认为允许您更多地解耦代码可能会有一些好处.
据我所知,Symfony调度员看起来更好 – 主要是因为它看起来更简单.
我自己使用了一种dojo pubsub类型的系统:基本上你有一个事件发布者,类可以发布事件.这是一种全局事件处理,您没有专门订阅类本身 – 而是订阅特定事件,并且哪个类发布事件无关紧要.
这与订阅特定类的好处是代码更加分离:在我的情况下,它是一个ZF应用程序,订阅事件的类可以简单地在引导程序中执行,而不必在控制器中执行订阅(或者创建发布者的地方)
这种方法的缺点是它可以使事物之间的依赖关系更难跟踪.例如,您只看到一个事件发布调用,但是如果不深入研究代码,您根本不知道它是什么类型的事情.
在我的情况下,我真的不知道应用程序是否从使用这种架构中获得任何好处 – 实际上我已经多次考虑完全删除它并且只使用直接监听事件的对象.