Symfony semanti c конфигурация - требуются разные поля в зависимости от типа - PullRequest
1 голос
/ 03 мая 2020

Давайте предположим следующий пример конфигурации:

people:
    alice:
        type: employee
        nick: SuperAlice
        department: accounting
    bob:
        type: guest
        nick: HappyBob

Конфигурация semanti c будет выглядеть примерно так:

->arrayNode('people')
    ->arrayPrototype()
        ->children()
            ->scalarNode('type')->isRequired()->end()
            ->scalarNode('nick')->defaultNull()->end()
            ->scalarNode('department')->end() // should be req. for type=employee only
        ->end()
    ->end
->end()

Сотрудник должен быть условно на основе введите

Как мне подойти? Кроме того, поле department не должно быть действительным для других типов для улучшения возможности обнаружения.
Эта проблема становится еще больше, когда вы конфигурируете очень разные блоки (например, представьте себе, что конфигурируете серверные базы данных, где большинство полей отличаются между типами). Я посмотрел на monolog-bundle , но он не предлагает никакой подсказки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...