This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Yaml
Fabien Potencier 0f56497cac bug #15480 [Yaml] Nested merge keys (mathroc)
This PR was merged into the 2.3 branch.

Discussion
----------

[Yaml] Nested merge keys

When trying to use nested merge keys in Yaml, the ref sometimes had the wrong value

eg, with:

```yaml
taz: &taz
    a: Steve
    w:
        p: 1234
nested:
    <<: *taz
    d: Doug
    w: &nestedref
        p: 12345
    z:
        <<: *nestedref
```

in this case, the ref `nestedref` had the value "Doug", which cause this error :

    Symfony\Component\Yaml\Exception\ParseException: YAML merge keys used with a scalar value instead of an array at line 38 (near "<<: *nestedref").

It now works as expected

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

note: this PR replace #15241

Commits
-------

500c57e [Yaml] Nested merge keys
2015-08-09 10:56:25 +02:00
..
Exception Docblock fixes 2014-11-30 13:33:44 +00:00
Tests [Yaml] Nested merge keys 2015-08-06 22:04:45 +02:00
.gitignore Added missing files .gitignore 2013-07-21 14:12:18 +02:00
CHANGELOG.md [Yaml] added CHANGELOG 2012-04-26 19:44:03 +02:00
composer.json link to https://symfony.com where possible 2015-05-01 16:06:45 +02:00
Dumper.php Docblock fixes 2014-11-30 13:33:44 +00:00
Escaper.php CS fixes 2015-04-16 09:01:03 +02:00
Inline.php [2.3] Static Code Analysis for Components 2015-06-15 15:02:08 +02:00
LICENSE Updated copyright to 2015 2015-01-01 13:56:52 +01:00
Parser.php bug #15480 [Yaml] Nested merge keys (mathroc) 2015-08-09 10:56:25 +02:00
phpunit.xml.dist [2.3] require-dev PHPUnit bridge 2015-02-24 11:24:26 +01:00
README.md renamed composer.phar to composer to be consistent with the Symfony docs 2015-02-08 08:41:14 +01:00
Unescaper.php [2.3] CS And DocBlock Fixes 2014-12-22 16:58:09 +01:00
Yaml.php Docblock fixes 2014-11-30 13:33:44 +00:00

Yaml Component

YAML implements most of the YAML 1.2 specification.

use Symfony\Component\Yaml\Yaml;

$array = Yaml::parse(file_get_contents(filename));

print Yaml::dump($array);

Resources

You can run the unit tests with the following command:

$ cd path/to/Symfony/Component/Yaml/
$ composer install
$ phpunit