Symfony 3.2 представит незначительное изменение синтаксиса YAML для того, чтобы сделать компонент YAML полностью совместим со спецификацией YAML.
Изменение касающиеся пропущены пробелов в директивах ключ/значение
YAML требует наличия по крайней мере одного пробела после двоеточия, отделяющего ключ и значение. В предыдущих версиях Symfony такое требование не являлось обязательным. В Symfony 3.2 такие директивы будут помечены как нежелательные и Symfony 4,0 будет выбрасывать исключение ParseException.
# It works in Symfony 3.1, it's deprecated in 3.2, it fails in 4.0 parameters: foo:bar published:true default_page:1 # It works in every past, present and future Symfony version parameters: foo: bar published: true default_page: 1
Изменение в определениях ключей дубликатов
В предыдущих версиях Symfony, когда один файл YAML содержал дубликаты ключей, всегда использовался первый ключ, а остальные игнорировались:
# the second key is ignored and this document is parsed # as: 'parameters' => array('key' => 'aaa') parameters: key: 'aaa' # ... key: 'bbb'
В Symfony 3,2 такой синтаксис является устаревшим и Symfony 4.0 будет бросать ParseException. Следовательно, самое время проверить, содержат ли ваши YAML файлы дубликаты ключей.
Перенос команды yaml:lint в компонент YAML
Не существенное изменение, но в Symfony 3.2 мы решили перенести команду консоли yaml:lint из FrameworkBundle в компонент YAML. Это позволит вам использовать yaml:lint без необходимости подключать весь FrameworkBundle.
Единственное отличие состоит в том, что при использовании yaml:lint как компонент вы сможете проверять файлы и каталоги, а использовать его в рамках всего фреймворка также можете проверять бандлы:
# it works in the component and the framework $ ./bin/console yaml:lint parameters.yml $ ./bin/console yaml:lint app/config/ # it only works in the framework $ ./bin/console yaml:lint @AppBundle
Источник: https://symfony.com/blog/new-in-symfony-3-2-yaml-deprecations