The SendResponseEvent

The MVC layer of Zend Framework 2 also incorporates and utilizes a custom Zend\EventManager\Event implementation located at Zend\Mvc\ResponseSender\SendResponseEvent. This event allows listeners to update the response object, by setting headers and content.

The methods it defines are:

  • setResponse($response)
  • getResponse()
  • setContentSent()
  • contentSent()
  • setHeadersSent()
  • headersSent()


Currently, three listeners are listening to this event at different priorities based on which listener is used most.

SendResponseEvent Listeners
Class Priority Method Called Description
Zend\Mvc\SendResponseListener\PhpEnvironmentResponseSender -1000 __invoke This is used in context of HTTP (this is the most often used).
Zend\Mvc\SendResponseListener\ConsoleResponseSender -2000 __invoke This is used in context of Console.
Zend\Mvc\SendResponseListener\SimpleStreamResponseSender -3000 __invoke  

Because all these listeners have negative priorities, adding your own logic to modify Response object is easy: just add a new listener without any priority (it will default to 1) and it will always be executed first.


This event is executed when MvcEvent::FINISH event is triggered, with a priority of -10000.

Table Of Contents

Previous topic

The MvcEvent

Next topic

Available Controllers

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

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 SendResponseEvent 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.