public static function register($routes) { self::$routes = array_merge((array) $routes, self::$routes); }
/** * Find the route that matches the closest. */ private function findClosestRoute($request_uri) { $Routes = Routes::routes(); $closeness = 0; $ret = new stdClass(); $controller_action = null; foreach ($Routes->export() as $key => $value) { //var_dump($Routes->export()); $value = (object) $value; if ($request_uri == $value->path) { $ret = $value; break; } $current = similar_text($request_uri, $value->path); if ($current > $closeness) { $closeness = $current; $ret = $value; } $controller = preg_replace('/([^\\s])([A-Z])/', '\\1-\\2', $value->controller); $first = $second = '/' . strtolower($controller) . '/' . $value->action; $second = $second . '/'; if ($first == $request_uri || $second == $request_uri) { $controller_action = $value; } } return array('ret' => $ret, 'controller-action' => $controller_action); }