- <?php
- /**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
- namespace Zend\View;
- use ArrayAccess;
- use Zend\EventManager\Event;
- use Zend\Stdlib\RequestInterface as Request;
- use Zend\Stdlib\ResponseInterface as Response;
- use Zend\View\Model\ModelInterface as Model;
- use Zend\View\Renderer\RendererInterface as Renderer;
- class ViewEvent extends Event
- {
- /**#@+
- * View events triggered by eventmanager
- */
- const EVENT_RENDERER = 'renderer';
- const EVENT_RENDERER_POST = 'renderer.post';
- const EVENT_RESPONSE = 'response';
- /**#@-*/
- /**
- * @var null|Model
- */
- protected $model;
- /**
- * @var Renderer
- */
- protected $renderer;
- /**
- * @var null|Request
- */
- protected $request;
- /**
- * @var null|Response
- */
- protected $response;
- /**
- * @var mixed
- */
- protected $result;
- /**
- * Set the view model
- *
- * @param Model $model
- * @return ViewEvent
- */
- public function setModel(Model $model)
- {
- $this->model = $model;
- return $this;
- }
- /**
- * Set the MVC request object
- *
- * @param Request $request
- * @return ViewEvent
- */
- public function setRequest(Request $request)
- {
- $this->request = $request;
- return $this;
- }
- /**
- * Set the MVC response object
- *
- * @param Response $response
- * @return ViewEvent
- */
- public function setResponse(Response $response)
- {
- $this->response = $response;
- return $this;
- }
- /**
- * Set result of rendering
- *
- * @param mixed $result
- * @return ViewEvent
- */
- public function setResult($result)
- {
- $this->result = $result;
- return $this;
- }
- /**
- * Retrieve the view model
- *
- * @return null|Model
- */
- public function getModel()
- {
- return $this->model;
- }
- /**
- * Set value for renderer
- *
- * @param Renderer $renderer
- * @return ViewEvent
- */
- public function setRenderer(Renderer $renderer)
- {
- $this->renderer = $renderer;
- return $this;
- }
- /**
- * Get value for renderer
- *
- * @return null|Renderer
- */
- public function getRenderer()
- {
- return $this->renderer;
- }
- /**
- * Retrieve the MVC request object
- *
- * @return null|Request
- */
- public function getRequest()
- {
- return $this->request;
- }
- /**
- * Retrieve the MVC response object
- *
- * @return null|Response
- */
- public function getResponse()
- {
- return $this->response;
- }
- /**
- * Retrieve the result of rendering
- *
- * @return mixed
- */
- public function getResult()
- {
- return $this->result;
- }
- /**
- * Get event parameter
- *
- * @param string $name
- * @param mixed $default
- * @return mixed
- */
- public function getParam($name, $default = null)
- {
- switch ($name) {
- case 'model':
- return $this->getModel();
- case 'renderer':
- return $this->getRenderer();
- case 'request':
- return $this->getRequest();
- case 'response':
- return $this->getResponse();
- case 'result':
- return $this->getResult();
- default:
- return parent::getParam($name, $default);
- }
- }
- /**
- * Get all event parameters
- *
- * @return array|\ArrayAccess
- */
- public function getParams()
- {
- $params = parent::getParams();
- $params['model'] = $this->getModel();
- $params['renderer'] = $this->getRenderer();
- $params['request'] = $this->getRequest();
- $params['response'] = $this->getResponse();
- $params['result'] = $this->getResult();
- return $params;
- }
- /**
- * Set event parameters
- *
- * @param array|object|ArrayAccess $params
- * @return ViewEvent
- */
- public function setParams($params)
- {
- parent::setParams($params);
- if (!is_array($params) && !$params instanceof ArrayAccess) {
- return $this;
- }
- foreach (array('model', 'renderer', 'request', 'response', 'result') as $param) {
- if (isset($params[$param])) {
- $method = 'set' . $param;
- $this->$method($params[$param]);
- }
- }
- return $this;
- }
- /**
- * Set an individual event parameter
- *
- * @param string $name
- * @param mixed $value
- * @return ViewEvent
- */
- public function setParam($name, $value)
- {
- switch ($name) {
- case 'model':
- $this->setModel($value);
- break;
- case 'renderer':
- $this->setRenderer($value);
- break;
- case 'request':
- $this->setRequest($value);
- break;
- case 'response':
- $this->setResponse($value);
- break;
- case 'result':
- $this->setResult($value);
- break;
- default:
- parent::setParam($name, $value);
- break;
- }
- return $this;
- }
- }