8000 Re-adding the ability to add a resource to the RouteCollectionBuilder · symfony/symfony@418ebdb · GitHub
[go: up one dir, main page]

Skip to content

Commit 418ebdb

Browse files
committed
Re-adding the ability to add a resource to the RouteCollectionBuilder
We need this because when you import a RouteCollection and this has a resource on it, we need to pass that resource forward to the RouteCollectionBuilder
1 parent aa2673b commit 418ebdb

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

src/Symfony/Component/Routing/RouteCollectionBuilder.php

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use Symfony\Component\Config\Exception\FileLoaderLoadException;
1515
use Symfony\Component\Config\Loader\LoaderInterface;
16+
use Symfony\Component\Config\Resource\ResourceInterface;
1617

1718
/**
1819
* Helps add and import routes into a RouteCollection.
@@ -35,6 +36,7 @@ class RouteCollectionBuilder
3536
private $options = array();
3637
private $schemes;
3738
private $methods;
39+
private $resources = array();
3840

3941
/**
4042
* @param LoaderInterface $loader
@@ -237,6 +239,19 @@ public function setMethods($methods)
237239
return $this;
238240
}
239241

242+
/**
243+
* Adds a resource for this collection.
244+
*
245+
* @param ResourceInterface $resource
246+
* @return $this
247+
*/
248+
private function addResource(ResourceInterface $resource)
249+
{
250+
$this->resources[] = $resource;
251+
252+
return $this;
253+
}
254+
240255
/**
241256
* Creates the final ArrayCollection, returns it, and clears everything.
242257
*
@@ -291,6 +306,10 @@ public function build()
291306

292307
$routeCollection->addCollection($subCollection);
293308
}
309+
310+
foreach ($this->resources as $resource) {
311+
$routeCollection->addResource($resource);
312+
}
294313
}
295314

296315
return $routeCollection;

src/Symfony/Component/Routing/Tests/RouteCollectionBuilderTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\Routing\Tests;
1313

14+
use Symfony\Component\Config\Resource\FileResource;
1415
use Symfony\Component\Routing\Route;
1516
use Symfony\Component\Routing\RouteCollection;
1617
use Symfony\Component\Routing\RouteCollectionBuilder;
@@ -29,6 +30,7 @@ public function testImport()
2930
$originalRoute = new Route('/foo/path');
3031
$expectedCollection = new RouteCollection();
3132
$expectedCollection->add('one_test_route', $originalRoute);
33+
$expectedCollection->addResource(new FileResource('file_resource.yml'));
3234

3335
$resolvedLoader
3436
->expects($this->once())
@@ -52,6 +54,8 @@ public function testImport()
5254
$addedCollection = $importedRoutes->build();
5355
$route = $addedCollection->get('one_test_route');
5456
$this->assertSame($originalRoute, $route);
57+
// should return file_resource.yml, which is in the original collection
58+
$this->assertCount(1, $addedCollection->getResources());
5559
}
5660

5761
/**

0 commit comments

Comments
 (0)
0