Example #1
0
File: Router.php Project: h1soft/h
 private function initRequest()
 {
     //init config
     $this->suffix = Config::get('router.suffix', '');
     $this->_rewrite();
     $this->_parseUrl();
     $this->defaultApp = Config::get('router.app', $this->defaultApp);
     $this->defaultController = isset($this->application->router['controller']) ? $this->application->router['controller'] : $this->defaultController;
     $this->defaultAction = isset($this->application->router['action']) ? $this->application->router['action'] . 'Action' : $this->defaultAction . 'Action';
     if (is_array($this->requestUri)) {
         $_param_len = count($this->requestUri);
         //alias
         $alias = \hmvc\Web\Config::get('alias');
         if (is_array($alias)) {
             $appname = $this->requestUri[0];
             if (isset($alias[$appname])) {
                 $this->defaultApp = $alias[$appname];
                 $this->requestUri[0] = $alias[$appname];
             }
         }
         switch ($_param_len) {
             case 1:
                 if (Application::checkApp($this->requestUri[0])) {
                     $this->defaultApp = ucwords($this->requestUri[0]);
                     $this->_defaultController();
                 } else {
                     if (Application::checkController(ucwords($this->requestUri[0]))) {
                     } else {
                         if (Application::checkAction(strtolower($this->requestUri[0]))) {
                         } else {
                             $this->_defaultController();
                             $this->application->request()->setParamArrays(array($this->requestUri[0]));
                         }
                     }
                 }
                 break;
             case 2:
                 if (Application::checkApp($this->requestUri[0])) {
                     $this->defaultApp = ucwords($this->requestUri[0]);
                     if (Application::checkController(ucwords($this->requestUri[1]))) {
                         $this->defaultController = ucwords($this->requestUri[1]);
                     } else {
                         if (Application::checkAction(ucwords($this->requestUri[1]))) {
                             $this->defaultAction = ucwords($this->requestUri[1]);
                         } else {
                             $this->_notfound();
                         }
                     }
                 } else {
                     if (Application::checkController(ucwords($this->requestUri[0]))) {
                         $this->defaultController = ucwords($this->requestUri[0]);
                         if (!Application::checkAction(strtolower($this->requestUri[1]))) {
                             $this->_notfound();
                         }
                     } else {
                         //                        $this->_notfound();
                         $this->_defaultController();
                         $this->application->request()->setParamArrays($this->requestUri);
                     }
                 }
                 break;
             case 3:
                 if (Application::checkApp($this->requestUri[0])) {
                     $this->defaultApp = ucwords($this->requestUri[0]);
                     if (Application::checkController(ucwords($this->requestUri[1]))) {
                         $this->defaultController = ucwords($this->requestUri[1]);
                     } else {
                         $this->_notfound();
                         return;
                     }
                     if (!Application::checkAction(ucwords($this->requestUri[2]))) {
                         $this->_notfound();
                         return;
                     }
                 } else {
                     if (Application::checkController(ucwords($this->requestUri[0]))) {
                         $this->defaultController = ucwords($this->requestUri[0]);
                         if (!Application::checkAction(ucwords($this->requestUri[1]))) {
                             $this->application->request()->setParamArrays(array($this->requestUri[1], $this->requestUri[2]));
                         } else {
                             $this->application->request()->setParamArrays(array($this->requestUri[2]));
                         }
                         return;
                     } else {
                         //                        $this->_notfound();
                         $this->_defaultController();
                         $this->application->request()->setParamArrays($this->requestUri);
                     }
                 }
                 break;
             case 4:
             case 5:
             case 6:
             case 7:
             case 8:
             case 9:
             case 10:
             case 11:
             case 12:
             case 13:
             case 14:
             case 15:
             case 16:
             case 17:
             case 18:
             case 19:
             case 20:
             case 21:
             case 22:
             case 23:
             case 24:
             case 25:
             case 26:
             case 27:
             case 28:
             case 29:
             case 30:
             case 31:
             case 32:
             case 33:
             case 34:
             case 35:
             case 36:
             case 37:
             case 38:
             case 39:
             case 40:
                 if (Application::checkApp($this->requestUri[0])) {
                     $this->defaultApp = ucwords($this->requestUri[0]);
                     if (Application::checkController(ucwords($this->requestUri[1]))) {
                         $this->defaultController = ucwords($this->requestUri[1]);
                     } else {
                         $this->_notfound();
                         return;
                     }
                     if (Application::checkAction(ucwords($this->requestUri[2]))) {
                         $this->prcParams(3, $_param_len);
                     } else {
                         $this->prcParams(2, $_param_len);
                     }
                 } else {
                     if (Application::checkController(ucwords($this->requestUri[0]))) {
                         $this->defaultController = ucwords($this->requestUri[0]);
                         if (!Application::checkAction(ucwords($this->requestUri[1]))) {
                             $this->prcParams(1, $_param_len);
                         } else {
                             $this->prcParams(2, $_param_len);
                         }
                     } else {
                         $this->_defaultController();
                         $this->prcParams(0, $_param_len);
                         //                        $this->application->request()->setParamArrays($this->requestUri);
                     }
                 }
                 break;
             default:
                 $this->_notfound();
                 break;
         }
     } else {
         $this->_defaultController();
     }
 }