/** * Stores a named route and returns it. The "action" will always be set to * "index" if it is not defined. * * $app->router->add('default', "/a/b/c", "/Controller/Index") * ->defaults(array( * 'abc' => 'cde', * )); * * @param string $name route name * @param string $uri URI pattern * @param string $controller Controller class name or alias * @param array $regex regex patterns for route keys * @return Route */ public function add($name, $uri, $controller, array $regex = array()) { $controller_config = array(); if (isset($this->controller_aliases[$controller])) { $controller_config = $this->controller_configs[$controller]; $controller = $this->controller_aliases[$controller]; } $controller = str_replace("/", "\\", $controller); $route = new Route($uri, $controller, $regex); $route->add_config($controller_config); $this->routes[$name] = $route; return $route; }