add files used in FileResource objects

Starting with Symfony 3.1, the constructor of the `FileResource` class
will throw an exception when the passed file does not exist.
This commit is contained in:
Christian Flothmann 2016-02-03 18:21:36 +01:00
parent bad218d44e
commit 73afd0f0e7
4 changed files with 20 additions and 12 deletions

View File

@ -87,7 +87,9 @@ abstract class ObjectRouteLoader extends Loader
private function addClassResource(\ReflectionClass $class, RouteCollection $collection)
{
do {
$collection->addResource(new FileResource($class->getFileName()));
if (is_file($class->getFileName())) {
$collection->addResource(new FileResource($class->getFileName()));
}
} while ($class = $class->getParentClass());
}
}

View File

@ -25,17 +25,8 @@ class ObjectRouteLoaderTest extends \PHPUnit_Framework_TestCase
$collection = new RouteCollection();
$collection->add('foo', new Route('/foo'));
// create some callable object
$service = $this->getMockBuilder('stdClass')
->setMethods(array('loadRoutes'))
->getMock();
$service->expects($this->once())
->method('loadRoutes')
->with($loader)
->will($this->returnValue($collection));
$loader->loaderMap = array(
'my_route_provider_service' => $service,
'my_route_provider_service' => new RouteService($collection),
);
$actualRoutes = $loader->load(
@ -114,3 +105,18 @@ class ObjectRouteLoaderForTest extends ObjectRouteLoader
return isset($this->loaderMap[$id]) ? $this->loaderMap[$id] : null;
}
}
class RouteService
{
private $collection;
public function __construct($collection)
{
$this->collection = $collection;
}
public function loadRoutes()
{
return $this->collection;
}
}

View File

@ -30,7 +30,7 @@ class RouteCollectionBuilderTest extends \PHPUnit_Framework_TestCase
$originalRoute = new Route('/foo/path');
$expectedCollection = new RouteCollection();
$expectedCollection->add('one_test_route', $originalRoute);
$expectedCollection->addResource(new FileResource('file_resource.yml'));
$expectedCollection->addResource(new FileResource(__DIR__.'/Fixtures/file_resource.yml'));
$resolvedLoader
->expects($this->once())