public function testCreatingUsesDefaultsWhenNotSupplied() { $route = new RecursiveRoute('/page/:page_id/:page_title'); $route->setDefaults(array('page_id' => 10, 'page_title' => 'home')); $url = $route->createUrl(array('page_id' => 20)); $this->assertEquals($url, '/page/20/home/'); }
protected function getRoute() { $route = new RecursiveRoute('/'); $subRoute1 = new RecursiveRoute(':module/:title'); $subRoute2 = new RecursiveRoute(':module/:id'); $subRoute2->setValidators(array('id' => '/^\\d+$/')); $route->addRoute($subRoute1); $route->addRoute($subRoute2); return $route; }
public function testCreatingUsesParameters() { $route = new RecursiveRoute('/static1/:param1/static2/:param2/static3'); $url = $route->createUrl(array('param1' => 'value1', 'param2' => 'value2')); $this->assertEquals($url, '/static1/value1/static2/value2/static3/'); }
/** * Will add a subroute to this route * * @param $route */ public function addRoute($route) { if (is_string($route)) { $route = new RecursiveRoute($route); } if (!$route instanceof RecursiveRoute) { throw new RecursiveRoute_InvalidArgument_Exception(__METHOD__ . ': Arguement should be string or RecursiveRoute object'); } $route->setSubRoute(); array_push($this->subRoutes, $route); }
protected function getThreeLevelRoute() { $route = new RecursiveRoute('/'); $newsRoute = new RecursiveRoute('/news/'); $newsRoute->addRoute(':id/:title/'); $newsRoute->addRoute('archive/:year/:month'); $route->addRoute($newsRoute); $pagesRoute = new RecursiveRoute('page'); $pagesRoute->addRoute(':page_id'); $pagesRoute->addRoute(':page_id/:page_title'); $route->addRoute($pagesRoute); return $route; }