Всем Привет,
кто может помочь с созданием конфига бандла?
На последнем этапе в проверке "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;
}
}