6

ZF2 文档描述了创建和注册备用渲染和响应策略。我读过,但我真的不明白,如何使用策略。

我有一个应用程序,它应该提供三种类型的输出(JSON、XML 和 HTML),具体取决于接受的 HTTP 标头。我该如何使用这种情况下的策略?

4

1 回答 1

5

Zend Framework 2 中策略的松散概念是在 MVC 应用程序周期期间触发事件时应用程序应遵循的行为,实际上是事件驱动的

在更实际的术语中,策略基本上是一个事件侦听器,通常是 的具体实例\Zend\EventManager\AbstractListenerAggregate,并且通常侦听\Zend\Mvc\MvcEvent各种事件,例如EVENT_RENDEREVENT_RENDER_ERROR

监听器被附加到\Zend\EventManager\EventManager,然后,使用上述\Zend\Mvc\MvcEvent访问 MVC 循环的所有基本资源(路由器、请求、响应、应用程序本身等),监听器可以检查应用程序的状态并更改其流程。

在 ZF2 官方文档提供的示例中,侦听器检查请求的接受标头,选择渲染器并相应地更改响应。

虽然它有点老了,所以我建议看一些更好的例子来阅读框架提供的主要策略的代码,即\Zend\Mvc\View\Http\RouteNotFoundStrategy监听EVENT_DISPATCHEVENT_DISPATCH_ERROR处理 404 错误页面的呈现。

此外,了解整个EventManager工作原理也非常重要。官方文档非常好,而且如果你用谷歌搜索的话,还有很多关于它的东西。

于 2013-07-25T16:11:07.647 回答