'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 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; } }