Source of file AbstractActionController.php
Size: 3,091 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Mvc/Controller/AbstractActionController.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | <?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\Mvc\Controller; use Zend\Http\Response as HttpResponse; use Zend\Mvc\Exception; use Zend\Mvc\MvcEvent; use Zend\View\Model\ConsoleModel; use Zend\View\Model\ViewModel; /** * Basic action controller */ abstract class AbstractActionController extends AbstractController { /** * @var string */ protected $eventIdentifier = __CLASS__; /** * Default action if none provided * * @return array */ public function indexAction() { return new ViewModel(array( 'content' => 'Placeholder page' )); } /** * Action called if matched action does not exist * * @return array */ public function notFoundAction() { $response = $this->response; $event = $this->getEvent(); $routeMatch = $event->getRouteMatch(); $routeMatch->setParam('action', 'not-found'); if ($response instanceof HttpResponse) { return $this->createHttpNotFoundModel($response); } return $this->createConsoleNotFoundModel($response); } /** * Execute the request * * @param MvcEvent $e * @return mixed * @throws Exception\DomainException */ public function onDispatch(MvcEvent $e) { $routeMatch = $e->getRouteMatch(); if (!$routeMatch) { /** * @todo Determine requirements for when route match is missing. * Potentially allow pulling directly from request metadata? */ throw new Exception\DomainException('Missing route matches; unsure how to retrieve action'); } $action = $routeMatch->getParam('action', 'not-found'); $method = static::getMethodFromAction($action); if (!method_exists($this, $method)) { $method = 'notFoundAction'; } $actionResponse = $this->$method(); $e->setResult($actionResponse); return $actionResponse; } /** * Create an HTTP view model representing a "not found" page * * @param HttpResponse $response * @return ViewModel */ protected function createHttpNotFoundModel(HttpResponse $response) { $response->setStatusCode(404); return new ViewModel(array( 'content' => 'Page not found', )); } /** * Create a console view model representing a "not found" action * * @param \Zend\Stdlib\ResponseInterface $response * @return ConsoleModel */ protected function createConsoleNotFoundModel($response) { $viewModel = new ConsoleModel(); $viewModel->setErrorLevel(1); $viewModel->setResult('Page not found'); return $viewModel; } } |