Когда вложенные последовательности нумеруются в компоненте Symfony YAML

0

Я использую компонент Symfony YAML для анализа файлов конфигурации Flexget. Однако бывают случаи, когда он преобразует последовательность ТВ-шоу в нумерованный список, когда на самом деле это должен быть список с тире -.

НЕПРАВИЛЬНЫЙ пример:

templates:
  tv:
    private_torrents: no
    regexp:
      accept:
        12: 'Absolute Duo'
        13: 'Yuri Kuma Arashi'
        14: 'Miritari!'
        ...

Правильный пример:

templates:
  tv:
    private_torrents: no
    regexp:
      accept:
        - 'Absolute Duo'
        - 'Yuri Kuma Arashi'
        - 'Miritari!'
        ...

Как я могу предотвратить это?

Вот как я сбрасываю свой YAML в файл: $config = Yaml::dump($this->config, 99, 2);

Я использую 99 потому что я никогда не хочу встроенной конфигурации.

Конфигурация, которую я сбрасываю:

array (size=2)
  'templates' => 
    array (size=1)
      'tv' => 
        array (size=4)
          'private_torrents' => string 'no' (length=2)
          'regexp' => 
            array (size=1)
              'accept' => 
                array (size=9)
                  0 => string 'Shingeki no Bahamut' (length=19)
                  1 => string 'Sora no Method' (length=14)
                  2 => string 'Gugure! Kokkuri-san' (length=19)
                  3 => string 'Majin Bone' (length=10)
                  4 => string 'Grisaia no Kajitsu' (length=18)
                  5 => string 'Queen Blade Rurou no Senshi' (length=29)
                  6 => string 'Daitoshokan no Hitsujikai' (length=25)
                  7 => string 'Trinity Seven' (length=13)
                  8 => string 'Akame ga Kill!' (length=14)
  • 0
    Можете ли вы показать, как выглядит массив, который вы сбрасываете?
Теги:
yaml

1 ответ

1
Лучший ответ

Можете ли вы опубликовать входной файл конфигурации, который вы демпинг?

также, единственная причина, по которой я предполагаю, что проблема может быть, заключается в том, что ваш вход считается хешем, глядя на эту строку, показывает, что если ваш массив не содержит ключей от 0 до count-1, ваш вход будет рассматриваться как хеш:

https://github.com/symfony/Yaml/blob/master/Dumper.php#L57

И если считать хешем, вместо вывода "-", он выведет "key: value" yaml

https://github.com/symfony/Yaml/blob/master/Dumper.php#L64

  • 0
    обновил мой вопрос! Однако я все еще в растерянности, каким образом мой массив не будет содержать правильные ключи? Как это может случиться? Это происходит, когда я сбрасываю ключ, а затем сбрасываю его без сброса всех ключей?
  • 0
    да, это может произойти на этом пути
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню