Example #1
0
 private static function compare()
 {
     $i = 0;
     foreach (self::$routes as $route) {
         if ($route != '/') {
             $route = trim($route, '/');
         }
         self::setRoute($route);
         if (self::$route == self::$uri) {
             if (is_object(self::$target[$i])) {
                 call_user_func(self::$target[$i]);
                 self::$errors = false;
                 break;
             }
             self::setMethod(self::$target[$i]);
             self::setController(self::$controller, self::$method);
             self::$errors = false;
             break;
         }
         $arr = explode('?', self::$uri);
         $new_uri = $arr[0];
         if (self::$route == $new_uri) {
             if (is_object(self::$target[$i])) {
                 call_user_func(self::$target[$i]);
                 self::$errors = false;
                 break;
             }
             self::setMethod(self::$target[$i]);
             self::setController(self::$controller, self::$method);
             self::$errors = false;
             break;
         }
         self::$routeOrigin = self::$route;
         self::changeRouteToRegex();
         if (preg_match_all('#' . self::$route . '#', self::$uri)) {
             $params = self::getParameters();
             if (is_object(self::$target[$i])) {
                 call_user_func_array(self::$target[$i], $params);
                 self::$errors = false;
                 break;
             }
             self::setMethod(self::$target[$i]);
             self::setController(self::$controller, self::$method, $params);
             self::$errors = false;
             break;
         }
         if (preg_match_all('#' . self::$route . '#', $new_uri)) {
             $params = self::getParameters();
             if (is_object(self::$target[$i])) {
                 call_user_func_array(self::$target[$i], $params);
                 self::$errors = false;
                 break;
             }
             self::setMethod(self::$target[$i]);
             self::setController(self::$controller, self::$method, $params);
             self::$errors = false;
             break;
         }
         $i++;
     }
     if (self::$errors) {
         throw new Exception('Route not found!');
     }
 }