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.