Removing sfYaml (unmaintained) in favor of Symfony\Yaml #43
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
sfYaml has been abandoned (https://github.com/fabpot-graveyard/yaml) and I'd like to make sure that it works on new versions of PHP as they are released, unfortunately Doctrine's tests don't exactly cover a lot of the sfYaml code.
I considered forking it and getting tests running on travis, but that was proving to be more effort than it was worth (and we don't really want to have to maintain it if we don't have to). So I decided to try Symfony\Yaml in place of sfYaml, which seems to be a near drop-in replacement.
Nearly... this will be a major version bump of this lib, as Symfony\Yaml does throw some errors when the yaml contains invalid syntax (in our case this was duplicate keys, un-quoted strings that start with a percent sign and extra characters outside of quotes that shouldn't be there). IMO it's a good thing that the parser catches these, but any projects using this fork of Doctrine may need to fix their schema/fixture files to work with this parser.
FWIW, I did try optionally using the PECL Yaml extension if available, but that's strictly a Yaml 1.1 parser (sfYaml and Symfony\Yaml follow the 1.2 spec, specifically when it comes to converting values to boolean (i.e. unquoted Yes/No). The 1.2 parsers don't do this, but the 1.1 parsers do). I felt this was a big enough difference to not suggest/use the PECL Yaml parser here.