Можно ли использовать псевдоним для ключей в yaml с symfony / yaml? - PullRequest
2 голосов
/ 25 марта 2020

Я пытался прочитать следующий файл yaml, используя symfony / yaml (v4.4.0) с cakephp3.
Но я получаю следующую ошибку.

Reference "aaa" does not exist in "path to yml" at line xx (near "*aaa:").
Symfony\Component\Yaml\Exception\ParseException

Я хотел бы позже используйте ключ 'aaa'.
Он не работает с "* aaa:" и работает с "1:".
В принципе, возможно ли использовать псевдоним для ключей в файле yaml?

Вот файл yaml.

aaa: &aaa 1
bbb: &bbb 2
ccc: &ccc 3

*aaa: # <- this doesn't work and works with '1:'
  - *bbb
  - *ccc

1 Ответ

0 голосов
/ 25 марта 2020

Для общего спец. c -соответствующего парсерам YAML

Вам нужно написать его с пробелом до :.

aaa: &aaa 1
bbb: &bbb 2
ccc: &ccc 3

*aaa :
  - *bbb
  - *ccc

YAML 1.2 позволяет : является частью якоря и, следовательно, строка не будет анализироваться как неявный ключ, если : записано рядом с псевдонимом (поскольку он становится частью псевдонима). Это было обсуждено в основном списке рассылки YAML .

Для Symfony

Кажется Symfony анализирует *aaa: как псевдоним *aaa с : в качестве индикатора значения. Хотя это нарушение spe c, это не должно нас беспокоить, поскольку, согласно списку рассылки, это больше похоже на недосмотр в spe c. Тем не менее, Symfony не удается разрешить псевдоним здесь, вы ничего не можете с этим поделать, как подать проблему для него.

...