Example #1
0
 /**
  * Main method. Initializes the application,
  * dispatches the request (selects controller and action),
  * runs the controller, and renders the view.
  * Passes back a response object with HTTP code, MIME-Header,
  * and page content.
  * Note: authentication controller will be called regardless of ACL.
  *
  * @return void
  */
 public function execute()
 {
     $this->initApplication();
     $controllerName = $this->applicationController->getControllerName($this->request);
     $class = $this->applicationController->getClass($controllerName);
     $method = $this->applicationController->getMethod($controllerName);
     $controller = $this->controllerFactory->getController($class);
     $result = $controller->execute($this->request, $this->response, $this->session, $this->authenticationAdapter, $method);
     if ('' == $result) {
         throw new FrontControllerException('Controller "' . $class . '" method "' . $method . '" returned empty result');
     }
     // forward here
     if ($this->applicationController->isForward($controllerName, $result)) {
         $controller = $this->applicationController->getForward($controllerName, $result);
         // @todo allow multiple forwards, but avoid endless loops
     }
     $view = $this->applicationController->getView($controllerName, $result);
     return $view->render($this->request, $this->response);
 }