/** * Starts routing * * @return void */ public static function run() { self::$running = TRUE; if (!empty($_SERVER['PATH_INFO'])) { self::$active_proxy_uri = str_replace($_SERVER['PATH_INFO'], '', $_SERVER['REQUEST_URI']); self::$request_path = urldecode(preg_replace('#\\?.*$#', '', $_SERVER['PATH_INFO'])); } else { self::$request_path = urldecode(preg_replace('#\\?.*$#', '', $_SERVER['REQUEST_URI'])); } $old_GET = $_GET; $_GET = array(); foreach (self::$routes as $route) { self::$active_callback = NULL; self::$active_namespace = NULL; self::$active_class = NULL; self::$active_short_class = NULL; self::$active_method = NULL; self::$active_short_method = NULL; self::$active_function = NULL; $_GET = $old_GET; try { self::dispatchRoute($route); } catch (MoorContinueException $e) { continue; } catch (MoorNotFoundException $e) { break; } } self::$messages[] = 'No Valid Matches Found. Running Not Found callback: ' . self::$not_found_callback; $route = (object) 'route'; $route->url = self::parseUrl('*'); $route->callback = self::parseCallback(self::$not_found_callback); $route->function = NULL; self::dispatchRoute($route); }