[Validator] Fix init of YamlFileLoader::$classes for empty files
This commit is contained in:
parent
7a07c1b464
commit
073a1dae13
@ -46,13 +46,7 @@ class YamlFileLoader extends FileLoader
|
|||||||
$this->yamlParser = new YamlParser();
|
$this->yamlParser = new YamlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method may throw an exception. Do not modify the class'
|
$this->classes = $this->parseFile($this->file);
|
||||||
// state before it completes
|
|
||||||
if (false === ($classes = $this->parseFile($this->file))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->classes = $classes;
|
|
||||||
|
|
||||||
if (isset($this->classes['namespaces'])) {
|
if (isset($this->classes['namespaces'])) {
|
||||||
foreach ($this->classes['namespaces'] as $alias => $namespace) {
|
foreach ($this->classes['namespaces'] as $alias => $namespace) {
|
||||||
@ -111,7 +105,7 @@ class YamlFileLoader extends FileLoader
|
|||||||
*
|
*
|
||||||
* @param string $path The path of the YAML file
|
* @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
|
* @throws \InvalidArgumentException If the file could not be loaded or did
|
||||||
* not contain a YAML array
|
* not contain a YAML array
|
||||||
@ -126,7 +120,7 @@ class YamlFileLoader extends FileLoader
|
|||||||
|
|
||||||
// empty file
|
// empty file
|
||||||
if (null === $classes) {
|
if (null === $classes) {
|
||||||
return;
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
// not an array
|
// not an array
|
||||||
|
@ -31,6 +31,10 @@ class YamlFileLoaderTest extends \PHPUnit_Framework_TestCase
|
|||||||
$metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
|
$metadata = new ClassMetadata('Symfony\Component\Validator\Tests\Fixtures\Entity');
|
||||||
|
|
||||||
$this->assertFalse($loader->loadClassMetadata($metadata));
|
$this->assertFalse($loader->loadClassMetadata($metadata));
|
||||||
|
|
||||||
|
$r = new \ReflectionProperty($loader, 'classes');
|
||||||
|
$r->setAccessible(true);
|
||||||
|
$this->assertSame(array(), $r->getValue($loader));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user