2023-03-11 12:04:29 +03:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Zend Framework (http://framework.zend.com/)
|
|
|
|
*
|
|
|
|
* @link http://github.com/zendframework/zf2 for the canonical source repository
|
2023-04-01 09:03:34 +03:00
|
|
|
* @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
|
2023-03-11 12:04:29 +03:00
|
|
|
* @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\ViewModel;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Basic action controller
|
|
|
|
*/
|
|
|
|
abstract class AbstractActionController extends AbstractController
|
|
|
|
{
|
|
|
|
/**
|
2023-04-01 09:03:34 +03:00
|
|
|
* {@inheritDoc}
|
2023-03-11 12:04:29 +03:00
|
|
|
*/
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2023-04-01 09:03:34 +03:00
|
|
|
* @deprecated please use the {@see \Zend\Mvc\Controller\Plugin\CreateHttpNotFoundModel} plugin instead: this
|
|
|
|
* method will be removed in release 2.5 or later.
|
2023-03-11 12:04:29 +03:00
|
|
|
*
|
2023-04-01 09:03:34 +03:00
|
|
|
* {@inheritDoc}
|
2023-03-11 12:04:29 +03:00
|
|
|
*/
|
|
|
|
protected function createHttpNotFoundModel(HttpResponse $response)
|
|
|
|
{
|
2023-04-01 09:03:34 +03:00
|
|
|
return $this->__call('createHttpNotFoundModel', array($response));
|
2023-03-11 12:04:29 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2023-04-01 09:03:34 +03:00
|
|
|
* @deprecated please use the {@see \Zend\Mvc\Controller\Plugin\CreateConsoleNotFoundModel} plugin instead: this
|
|
|
|
* method will be removed in release 2.5 or later.
|
2023-03-11 12:04:29 +03:00
|
|
|
*
|
2023-04-01 09:03:34 +03:00
|
|
|
* {@inheritDoc}
|
2023-03-11 12:04:29 +03:00
|
|
|
*/
|
|
|
|
protected function createConsoleNotFoundModel($response)
|
|
|
|
{
|
2023-04-01 09:03:34 +03:00
|
|
|
return $this->__call('createConsoleNotFoundModel', array($response));
|
2023-03-11 12:04:29 +03:00
|
|
|
}
|
|
|
|
}
|