From c73f34d2bc19d87a73a7b43482546e855db18354 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Fri, 20 May 2016 13:48:17 +0200 Subject: [PATCH] [Config] Allow schemed path in FileResource --- src/Symfony/Component/Config/Resource/FileResource.php | 4 ++++ .../Component/Config/Tests/Resource/FileResourceTest.php | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Config/Resource/FileResource.php b/src/Symfony/Component/Config/Resource/FileResource.php index f94640fffc..65a195f5d2 100644 --- a/src/Symfony/Component/Config/Resource/FileResource.php +++ b/src/Symfony/Component/Config/Resource/FileResource.php @@ -36,6 +36,10 @@ class FileResource implements SelfCheckingResourceInterface, \Serializable { $this->resource = realpath($resource); + if (false === $this->resource && file_exists($resource)) { + $this->resource = $resource; + } + if (false === $this->resource) { throw new \InvalidArgumentException(sprintf('The file "%s" does not exist.', $resource)); } diff --git a/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php b/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php index 4151f66bc5..6a168e6351 100644 --- a/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php +++ b/src/Symfony/Component/Config/Tests/Resource/FileResourceTest.php @@ -21,7 +21,7 @@ class FileResourceTest extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->file = realpath(sys_get_temp_dir()).'/tmp.xml'; + $this->file = sys_get_temp_dir().'/tmp.xml'; $this->time = time(); touch($this->file, $this->time); $this->resource = new FileResource($this->file); @@ -41,6 +41,12 @@ class FileResourceTest extends \PHPUnit_Framework_TestCase $this->assertSame(realpath($this->file), $this->resource->getResource(), '->getResource() returns the path to the resource'); } + public function testGetResourceWithScheme() + { + $resource = new FileResource('file://'.$this->file); + $this->assertSame('file://'.$this->file, $resource->getResource(), '->getResource() returns the path to the schemed resource'); + } + public function testToString() { $this->assertSame(realpath($this->file), (string) $this->resource);