The ViewEvent

The view layer of Zend Framework 2 incorporates and utilizes a custom Zend\EventManager\Event implementation - Zend\View\ViewEvent. This event is created during Zend\View\View::getEvent() and is passed directly to all the events that method triggers.

The ViewEvent adds accessors and mutators for the following:

  • Model object, typically representing the layout view model.
  • Renderer object.
  • Request object.
  • Response object.
  • Result object.

The methods it defines are:

  • setModel(Model $model)
  • getModel()
  • setRequest($request)
  • getRequest()
  • setResponse($response)
  • getResponse()
  • setRenderer($renderer)
  • getRenderer()
  • setResult($result)
  • getResult()

Order of events

The following events are triggered, in the following order:

ViewEvent Events
Name Constant Description
renderer ViewEvent::EVENT_RENDERER Render the view, with the help of renderers.
renderer.post ViewEvent::EVENT_RENDERER_POST Triggers after the view is rendered.
response ViewEvent::EVENT_RESPONSE Populate the response from the view.

Those events are extensively describe in the following sections.

ViewEvent::EVENT_RENDERER

Listeners

The following classes are listening to this event (they are sorted from higher priority to lower priority):

For PhpStrategy

This listener is added when the strategy used for rendering is PhpStrategy:

ViewEvent::EVENT_RENDERER Listeners for PhpStrategy
Class Priority Method Called Description
Zend\View\Strategy\PhpStrategy 1 selectRenderer Return a PhpRenderer

For JsonStrategy

This listener is added when the strategy used for rendering is JsonStrategy:

ViewEvent::EVENT_RENDERER Listeners for JsonStrategy
Class Priority Method Called Description
Zend\View\Strategy\JsonStrategy 1 selectRenderer Return a JsonRenderer

For FeedStrategy

This listener is added when the strategy used for rendering is FeedStrategy:

ViewEvent::EVENT_RENDERER Listeners for FeedStrategy
Class Priority Method Called Description
Zend\View\Strategy\FeedStrategy 1 selectRenderer Return a FeedRenderer

Triggerers

This event is triggered by the following classes:

ViewEvent::EVENT_RENDERER Triggerers
Class In Method Description
Zend\View\View render It has a short circuit callback that stops propagation once one result return an instance of a Renderer.

ViewEvent::EVENT_RENDERER_POST

Listeners

There are currently no built-in listeners for this event.

Triggerers

This event is triggered by the following classes:

ViewEvent::EVENT_RENDERER_POST Triggerers
Class In Method Description
Zend\View\View render This event is triggered after ViewEvent::EVENT_RENDERER and before ViewEvent::EVENT_RESPONSE.

ViewEvent::EVENT_RESPONSE

Listeners

The following classes are listening to this event (they are sorted from higher priority to lower priority):

For PhpStrategy

This listener is added when the strategy used for rendering is PhpStrategy:

ViewEvent::EVENT_RESPONSE Listeners for PhpStrategy
Class Priority Method Called Description
Zend\View\Strategy\PhpStrategy 1 injectResponse Populate the Response object from the view.

For JsonStrategy

This listener is added when the strategy used for rendering is JsonStrategy:

ViewEvent::EVENT_RESPONSE Listeners for JsonStrategy
Class Priority Method Called Description
Zend\View\Strategy\JsonStrategy 1 injectResponse Populate the Response object from the view.

For FeedStrategy

This listener is added when the strategy used for rendering is FeedStrategy:

ViewEvent::EVENT_RESPONSE Listeners for FeedStrategy
Class Priority Method Called Description
Zend\View\Strategy\FeedStrategy 1 injectResponse Populate the Response object from the view.

Triggerers

This event is triggered by the following classes:

ViewEvent::EVENT_RESPONSE Triggerers
Class In Method Description
Zend\View\View render This event is triggered after ViewEvent::EVENT_RENDERER and ViewEvent::EVENT_RENDERER_POST.
Edit this document

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

  1. Login with your GitHub account.
  2. Go to The ViewEvent on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.