bug #20828 [Validator] Fix init of YamlFileLoader::$classes for empty files (nicolas-grekas)

This PR was merged into the 2.7 branch.

Discussion
----------

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

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #20761
| License       | MIT
| Doc PR        | -

Commits
-------

073a1da [Validator] Fix init of YamlFileLoader::$classes for empty files
This commit is contained in:
Nicolas Grekas 2016-12-08 16:57:04 +01:00
commit 0aa80f25d7
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));
}
/**