/** * Method to test build(). * * @return void * * @covers Windwalker\Router\Router::build */ public function testBuild() { $routes = array(new Route('flower', 'flower/(id)/(alias)', array('_controller' => 'FlowerController')), new Route('sakura', 'foo/bar(/id,sakura)', array('_controller' => 'SakuraController'))); $this->instance->addRoutes($routes); $this->assertEquals('flower/25/sakura', $this->instance->build('flower', array('id' => 25, 'alias' => 'sakura'))); $this->assertEquals('/flower/25/sakura', $this->instance->build('flower', array('id' => 25, 'alias' => 'sakura'), true)); }
/** * Build route by resource setting. * * @param string $name The route name. * @param array $queries The queries. * @param bool $rootSlash Add root slash or not. * * @return array|string Segments, can be string or array. */ public function build($name, $queries = array(), $rootSlash = false) { $segments = parent::build($name, $queries, $rootSlash); $uri = new Uri($segments); $segments = $uri->getPath(); $this->queries = $uri->getQuery(true); return explode('/', $segments); }