コード例 #1
0
 /**
  * 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());
     }
 }