/** * route * * @access public * @return void */ public function route() { global $app; $controllerName = $this->_command->getControllerName(); if (!$this->routeExists($controllerName)) { $controllerName = 'error'; } include 'controllers/' . $controllerName . '.php'; // Only log analytics data for non-login pages here if (strcasecmp($controllerName, 'login') !== 0) { if ($app->getConfiguration()->logAnalytics() == true) { $analyticsData = array(); $analyticsData['time'] = time(); $analyticsData['session'] = session_id(); $analyticsData['page'] = $controllerName; $GLOBALS['routeLogger']->info(json_encode($analyticsData)); } } $controllerClass = $controllerName . 'Controller'; $controller = new $controllerClass($this->_command); //$controller->addPreProcessor(); try { $params = $controller->getParams(); $request = new HttpRequest($params); $request->parse(); $controller->execute($request); } catch (MissingParamsException $mpe) { $response = new HttpResponse(); $response->addHeader('HTTP/1.1 400 Bad Request'); $response->send(); } catch (ServiceException $sxe) { $response = new HttpResponse(); $response->sendError($sxe->getMessage()); } catch (ClientException $cxe) { $response = new HttpResponse(); $response->sendError($cxe->getMessage(), $cxe->getCode()); } }