[Validator] Fix init of YamlFileLoader::$classes for empty files

This commit is contained in:
Nicolas Grekas 2016-12-08 13:07:24 +01:00
parent 7a07c1b464
commit 073a1dae13
2 changed files with 7 additions and 9 deletions

View File

@ -46,13 +46,7 @@ class YamlFileLoader extends FileLoader
$this->yamlParser = new YamlParser();
}
// This method may throw an exception. Do not modify the class'
// state before it completes
if (false === ($classes = $this->parseFile($this->file))) {
return false;
}
$this->classes = $classes;
$this->classes = $this->parseFile($this->file);
if (isset($this->classes['namespaces'])) {
foreach ($this->classes['namespaces'] as $alias => $namespace) {
@ -111,7 +105,7 @@ class YamlFileLoader extends FileLoader
*
* @param string $path The path of the YAML file
*
* @return array|null The class descriptions or null, if the file was empty
* @return array The class descriptions
*
* @throws \InvalidArgumentException If the file could not be loaded or did
* not contain a YAML array
@ -126,7 +120,7 @@ class YamlFileLoader extends FileLoader
// empty file
if (null === $classes) {
return;
return array();
}
// not an array

View File

@ -31,6 +31,10 @@ class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
$metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
$this->assertFalse($loader->loadClassMetadata($metadata));
$r = new \ReflectionProperty($loader, 'classes');
$r->setAccessible(true);
$this->assertSame(array(), $r->getValue($loader));
}
/**