| Current Path : /home/rtorresani/www/vendor/laminas/laminas-mvc/src/Controller/ |
| Current File : //home/rtorresani/www/vendor/laminas/laminas-mvc/src/Controller/AbstractActionController.php |
<?php
namespace Laminas\Mvc\Controller;
use Laminas\Mvc\Exception\DomainException;
use Laminas\Mvc\Exception;
use Laminas\Mvc\MvcEvent;
use Laminas\View\Model\ViewModel;
/**
* Basic action controller
*/
abstract class AbstractActionController extends AbstractController
{
/**
* {@inheritDoc}
*/
protected $eventIdentifier = self::class;
/**
* Default action if none provided
*
* @return ViewModel
*/
public function indexAction()
{
return new ViewModel([
'content' => 'Placeholder page'
]);
}
/**
* Action called if matched action does not exist
*
* @return ViewModel
*/
public function notFoundAction()
{
$event = $this->getEvent();
$routeMatch = $event->getRouteMatch();
$routeMatch->setParam('action', 'not-found');
$helper = $this->plugin('createHttpNotFoundModel');
return $helper($event->getResponse());
}
/**
* 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 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;
}
}