如 Enrico Zimuel 的教程“MVC + Events + Modules: the new architecture of ZF2”所示,基本的 ZF2 MVC 事件结构如下所示:
ZF MVC Auth扩展添加了基本的 MVC 流程,并向其中添加了四个事件(EVENT_AUTHENTICATION
、EVENT_AUTHENTICATION_POST
、EVENT_AUTHORIZATION
、EVENT_AUTHORIZATION_POST
) .
现在我正在阅读 Apigility“Advanced Authentication and Authorization”文档,内容如下:
In order to achieve integration to the ZF2 MVC lifecycle for authentication,
zf-mvc-auth
wires in 4 listeners that then propagate their own events. Each of these listeners are registered within the eventMvcEvent::EVENT_ROUTE
at different priorities.
有两点我不清楚:
“每个监听器都在事件中注册
MvcEvent::EVENT_ROUTE
”——“嵌套事件”?这是什么意思?“在事件内
MvcEvent::EVENT_ROUTE
在不同的优先级” - 事件优先级层次结构是否“嵌套”/不是直线?是多维的吗?
最佳答案
您可以将监听器附加到或on事件;这些监听器将按其优先级排序。
当事件被触发时(例如事件MvcEvent::EVENT_ROUTE
),注册的监听器将一一执行,从优先级最高的监听器开始一直到优先级最低的监听器。
“嵌套事件”或“传播它们自己的事件”将是这些监听器之一触发另一个事件的地方。一个例子是 the listener for rendering, \Zend\View\Http\DefaultRenderingStrategy::render()
,其中发生渲染错误时会触发 MvcEvent::EVENT_RENDER_ERROR
。
关于events - 了解ZF2事件系统:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31110396/