/** * Use our Foundation\VC\Config class * @see Lvc_FrontController::processRequest() */ public function processRequest(\Lvc_Request $request) { try { // Give routers a chance to (re)-route the request. foreach ($this->routers as $router) { if ($router->route($request)) { break; } } // If controller name or action name are not set, set them to default. $controllerName = $request->getControllerName(); if (empty($controllerName)) { $controllerName = Config::getDefaultControllerName(); $actionName = Config::getDefaultControllerActionName(); $actionParams = $request->getActionParams() + Config::getDefaultControllerActionParams(); $request->setActionParams($actionParams); } else { $actionName = $request->getActionName(); if (empty($actionName)) { $actionName = Config::getDefaultActionName(); } } $controller = Config::getController($controllerName); if (is_null($controller)) { throw new \Lvc_Exception('Unable to load controller "' . $controllerName . '"'); } $controller->setControllerParams($request->getControllerParams()); $controller->runAction($actionName, $request->getActionParams()); } catch (\Lvc_Exception $e) { // Catch exceptions and append additional error info if the request object has anything to say. $moreInfo = $request->getAdditionalErrorInfo(); if (!empty($moreInfo)) { throw new \Lvc_Exception($e->getMessage() . '. ' . $moreInfo); } else { throw $e; } } }
/** * Overridden to user FoundationVC_Config * @see Lvc_PageController::requestAction() */ protected function requestAction($actionName, $actionParams = array(), $controllerName = null, $controllerParams = null, $layout = null) { if (empty($controllerName)) { $controllerName = $this->controllerName; } if (is_null($controllerParams)) { $controllerParams = $this->params; } $controller = Config::getController($controllerName); if (is_null($controller)) { throw new \Lvc_Exception('Unable to load controller "' . $controllerName . '"'); } $controller->setControllerParams($controllerParams); $controller->setLayoutOverride($layout); return $controller->getActionOutput($actionName, $actionParams); }