torrentpier-lts/library/Zend/Mvc/Controller/AbstractActionController.php

111 lines
3.0 KiB
PHP
Raw Permalink Normal View History

<?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)
* @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}
*/
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-04-01 09:03:34 +03:00
* {@inheritDoc}
*/
protected function createHttpNotFoundModel(HttpResponse $response)
{
2023-04-01 09:03:34 +03:00
return $this->__call('createHttpNotFoundModel', array($response));
}
/**
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-04-01 09:03:34 +03:00
* {@inheritDoc}
*/
protected function createConsoleNotFoundModel($response)
{
2023-04-01 09:03:34 +03:00
return $this->__call('createConsoleNotFoundModel', array($response));
}
}