LintCommand
!
is changed and now forces
non-evaluating your values.ParseException
!!php/object
tag has been dropped, use the !php/object
tag insteadParseException
ParseException
, use the Yaml::PARSE_KEYS_AS_STRINGS
flag to cast them to strings%
at the beginning of an unquoted string throw a ParseException
:
) that is not followed by a whitespace throw a
ParseException
Dumper::setIndentation()
method has been removedYaml::parse()
, Yaml::dump()
,
Parser::parse()
, and Dumper::dump()
methods to configure the behavior of
the parser and dumper is no longer supported, pass bitmask flags insteadParser
class have been removedInline
class is internal and no longer part of the BC promise!str
tag, use the !!str
tag instead Yaml::parse('!foo bar', Yaml::PARSE_CUSTOM_TAGS);
// returns TaggedValue('foo', 'bar');
added support for parsing YAML files using the Yaml::parseFile()
or Parser::parseFile()
method
the Dumper
, Parser
, and Yaml
classes are marked as final
Deprecated the !php/object:
tag which will be replaced by the
!php/object
tag (without the colon) in 4.0.
Deprecated the !php/const:
tag which will be replaced by the
!php/const
tag (without the colon) in 4.0.
Support for the !str
tag is deprecated, use the !!str
tag instead.
Deprecated using the non-specific tag !
as its behavior will change in 4.0.
It will force non-evaluating your values in 4.0. Use plain integers or !!float
instead.
Starting an unquoted string with a question mark followed by a space is
deprecated and will throw a ParseException
in Symfony 4.0.
Deprecated support for implicitly parsing non-string mapping keys as strings.
Mapping keys that are no strings will lead to a ParseException
in Symfony
4.0. Use quotes to opt-in for keys to be parsed as strings.
Before:
$yaml = <<<YAML
null: null key
true: boolean true
2.0: float key
YAML;
Yaml::parse($yaml);
After:
$yaml = <<<YAML
"null": null key
"true": boolean true
"2.0": float key
YAML;
Yaml::parse($yaml);
Omitted mapping values will be parsed as null
.
Omitting the key of a mapping is deprecated and will throw a ParseException
in Symfony 4.0.
Added support for dumping empty PHP arrays as YAML sequences:
Yaml::dump([], 0, 0, Yaml::DUMP_EMPTY_ARRAY_AS_SEQUENCE);
Mappings with a colon (:
) that is not followed by a whitespace are deprecated
when the mapping key is not quoted and will lead to a ParseException
in
Symfony 4.0 (e.g. foo:bar
must be foo: bar
).
Added support for parsing PHP constants:
Yaml::parse('!php/const:PHP_INT_MAX', Yaml::PARSE_CONSTANT);
ParseException
in Symfony 4.0.Added support to dump stdClass
and ArrayAccess
objects as YAML mappings
through the Yaml::DUMP_OBJECT_AS_MAP
flag.
Strings that are not UTF-8 encoded will be dumped as base64 encoded binary data.
Added support for dumping multi line strings as literal blocks.
Added support for parsing base64 encoded binary data when they are tagged
with the !!binary
tag.
Added support for parsing timestamps as \DateTime
objects:
Yaml::parse('2001-12-15 21:59:43.10 -5', Yaml::PARSE_DATETIME);
\DateTime
and \DateTimeImmutable
objects are dumped as YAML timestamps.
Deprecated usage of %
at the beginning of an unquoted string.
Added support for customizing the YAML parser behavior through an optional bit field:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE | Yaml::PARSE_OBJECT | Yaml::PARSE_OBJECT_FOR_MAP);
Yaml::dump(['foo' => new A(), 'bar' => 1], 0, 0, Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE | Yaml::DUMP_OBJECT);
\
characters. Not
escaping those characters (when surrounded by double-quotes) is deprecated.Before:
class: "Foo\Var"
After:
class: "Foo\\Var"