正如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”文档,其中说:
为了实现与ZF2 MVC生命周期的集成以进行身份验证,
zf-mvc-auth
连接4个侦听器,然后传播自己的事件。这些监听器中的每一个都在事件MvcEvent::EVENT_ROUTE
内以不同的优先级注册。
我不清楚两点:
“这些侦听器中的每一个都在 MvcEvent::EVENT_ROUTE
” - “嵌套事件”中注册?这是什么意思?
“ MvcEvent::EVENT_ROUTE
不同优先级” - 事件优先级层次结构是“嵌套”/不是直线?它是多维的吗?
答案 0 :(得分:2)
您可以在事件上附加到或的侦听器;这些听众将按优先级命令。
当事件被触发时(比如事件MvcEvent::EVENT_ROUTE
),注册的侦听器将逐个执行,从具有最高优先级的侦听器开始到最低值。
“嵌套事件”或“传播他们自己的事件”将是其中一个侦听器触发另一个事件。这方面的一个示例是the listener for rendering, \Zend\View\Http\DefaultRenderingStrategy::render()
,其中在发生渲染错误时会触发MvcEvent::EVENT_RENDER_ERROR
。