events - 了解ZF2事件系统:

标签 events zend-framework2 zend-framework-mvc

如 Enrico Zimuel 的教程“MVC + Events + Modules: the new architecture of ZF2”所示,基本的 ZF2 MVC 事件结构如下所示:

ZF2-MVC-flow-events

ZF MVC Auth扩展添加了基本的 MVC 流程,并向其中添加了四个事件(EVENT_AUTHENTICATIONEVENT_AUTHENTICATION_POSTEVENT_AUTHORIZATIONEVENT_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 event MvcEvent::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/

相关文章:

Java:是否可以(在运行时)获取 future 方法调用的源文件名和行号?

macos - 使用 NSAppleEventManager 捕获所有退出事件

php - Zend Framework 2 记录到 MySQL DB 附加列插入空

php - 如何编写正文中包含 anchor 标记的 Zend Framework URL?

javascript - 点击时模态未打开(materialize、jquery)

php - magento 事件不工作

php - zf2 是否有 urlencode 的别名?

javascript - 通过 onchange 事件将两个或多个值传递给 javascript

zend-framework - Zend 框架 : Controller Plugins vs Action Helpers

php - ZF2 - 如何更改错误/404 响应页面?不仅仅是模板,而是设置一个新的 ViewModel