@symnoob

Symfony 4 — Может кто помочь с созданием конфига бандла?

Всем Привет,
кто может помочь с созданием конфига бандла?

На последнем этапе в проверке "language:" у меня проблема.

здесь както надо умно дополнить, что в параметре: 'ru,en ...' ожидается или массив или стринг

то есть нужна такая проверка, которая бы проверяла сам ямл.
Чтоб проверялась на схему как бы:
есть фильтр у Фильтра есть значения (Массив) у них есть значения(Массив) Языки у техт тоже значения(Массив) к примеру русский, англиский итд..
а вот у этих может быть либо простой массив или стринг.

фильтров может быть очень много но все они построены по этой схеме, разветвления только в языках

yaml:
search:
  filter:
    product:
      language:
        ru: ['страховка', 'дом', 'camping']
        en: ['insurance', 'house', 'camping']
    page:
      language:
        ru: 'страница:*'
        en: 'page:*'
    price_until:
      language:
        ru: 'цена-до:*'
        en: 'price-until:*'


Configuration.php:
<?php

namespace Ferien\Bundle\SearchBundle\DependencyInjection;

use Symfony\Component\Config\Definition\Builder\TreeBuilder;
use Symfony\Component\Config\Definition\ConfigurationInterface;

class Configuration implements ConfigurationInterface
{
    public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder('ferien_search');
        $treeBuilder->getRootNode()
        ->children()
            ->arrayNode('filter')
                ->isRequired()
                ->requiresAtLeastOneElement()
                ->useAttributeAsKey('name')
                ->prototype('array')
                    ->children()
                        ->arrayNode('language')
                            ->isRequired()
                            ->requiresAtLeastOneElement()
                            ->useAttributeAsKey('name')
                            ->prototype('array')
                                ->children()
                                ->end()
                            ->end()
                        ->end()
                    ->end()
                ->end()
            ->end()
        ->end();

        return $treeBuilder;
    }
}
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы