/** * Adds a route collection to the current set of routes (at the end of the current set). * * @param RouteCollection $collection A RouteCollection instance * @param string $prefix An optional prefix to add before each pattern of the route collection */ public function addCollection(RouteCollection $collection, $prefix = '') { $collection->addPrefix($prefix); foreach ($collection->getResources() as $resource) { $this->addResource($resource); } $this->routes = array_merge($this->routes, $collection->getRoutes()); }
public function testAddCollection() { $collection = new RouteCollection(); $collection->addRoute('foo', $foo = new Route('/foo')); $collection1 = new RouteCollection(); $collection1->addRoute('foo', $foo1 = new Route('/foo1')); $collection1->addRoute('bar', $bar1 = new Route('/bar1')); $collection->addCollection($collection1); $this->assertEquals(array('foo' => $foo1, 'bar' => $bar1), $collection->getRoutes(), '->addCollection() adds routes from another collection'); $collection = new RouteCollection(); $collection->addRoute('foo', $foo = new Route('/foo')); $collection1 = new RouteCollection(); $collection1->addRoute('foo', $foo1 = new Route('/foo1')); $collection->addCollection($collection1, '/foo'); $this->assertEquals('/foo/foo1', $collection->getRoute('foo')->getPattern(), '->addCollection() can add a prefix to all merged routes'); $collection = new RouteCollection(); $collection->addResource($foo = new FileResource(__DIR__ . '/Fixtures/foo.xml')); $collection1 = new RouteCollection(); $collection1->addResource($foo1 = new FileResource(__DIR__ . '/Fixtures/foo1.xml')); $collection->addCollection($collection1); $this->assertEquals(array($foo, $foo1), $collection->getResources(), '->addCollection() merges resources'); }