/**
  *
  */
 public function __construct()
 {
     /* Get HTTP method */
     $this->method = $_SERVER['REQUEST_METHOD'];
     /* Get requested query */
     $this->query = $_REQUEST['_QUERY'] != '/' ? $_REQUEST['_QUERY'] : 'main';
     /* Get path chunks */
     $this->path = explode('/', ltrim($this->query, '/'));
     /* Get HTTP passed params */
     $this->http_params = $_REQUEST;
     /* Get user address */
     $this->address = $this->getAddress();
     /* get CamelCase controller name */
     $this->controller = StringAssist::convertReference($this->path[0]);
 }
 /**
  * @param HttpRequest $request
  */
 public function __construct(HttpRequest $request)
 {
     /* Check for wrong 'listen' configuration */
     if (!is_array($this->listen)) {
         return false;
     }
     /* Get HTTP method */
     $this->method = $request->getMethod();
     /* Get HTTP params */
     $this->http_params = $request->getHttpParams();
     /* Get passed params */
     $passedParams = $request->getParams($this->matchControllerWithRequested($request));
     /* If no params was defined to listen */
     if ($this->listen === []) {
         /* If params were not passed */
         if ($passedParams === []) {
             /* Proxy to main action */
             $this->action = 'main';
         }
     } else {
         /* If params count same or less than we listening for */
         if (count($this->listen) >= count($passedParams)) {
             /* Define behaviour */
             $behaviour = $this->getBehaviour($passedParams);
             /* Set action */
             $this->action = $behaviour['action'] ? 'action' . StringAssist::convertReference($behaviour['action']) : 'main';
             /* Set params */
             $this->params = $behaviour['params'];
         }
     }
 }