Example #1
0
 function __construct()
 {
     $request = Request::getInstance();
     $this->routes = Config::getRoutes();
     $params = [];
     $tmp = explode('?', $request->uri);
     $uri = $tmp[0];
     if (array_key_exists($uri, $this->routes)) {
         $request->namespace = $this->routes[$uri]['options']['namespace'];
         $request->controller = ucfirst($this->routes[$uri]['options']['controller']);
         $request->action = $this->routes[$uri]['options']['action'];
         if (isset($this->routes[$uri]['params'])) {
             $request->params = $this->routes[$uri]['params'];
         }
     } else {
         $uri = trim($uri, '/');
         $tmp = explode('/', $uri);
         $modules = Config::getModuleList();
         $namespace = $this->toCap($tmp[0]);
         if (in_array($namespace, $modules)) {
             $request->namespace = $namespace;
             array_shift($tmp);
         } else {
             $request->namespace = Config::getDefaultNamespace();
         }
         $request->controller = $this->toCap($tmp[0]);
         $request->action = isset($tmp[1]) ? lcfirst($this->toCap(trim($tmp[1], '_'))) : Config::getDefaultAction();
         if (isset($tmp[2]) && !empty($tmp[2])) {
             $request->params = array_slice($tmp, 2);
         }
     }
     Config::setCurentNamespace($request->namespace);
     EventManager::getInstance()->event('router.construct', $this);
 }