Вставить конфигурацию пучка в веточку без глобалов - PullRequest
0 голосов
/ 02 мая 2018

Я работаю с Symfony 3.4 - у меня есть UserBundle, который расширяет FOSUserBundle. Этот комплект будет использоваться в нескольких проектах, и я хочу создать конфигурацию для своего комплекта. Например, чтобы включить или отключить ссылку регистрации в форме входа.

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

Конфигурация комплекта:

public function getConfigTreeBuilder()
{
    $treeBuilder = new TreeBuilder();
    $rootNode = $treeBuilder->root('user');

    $rootNode
        ->children()
            ->booleanNode('loginform_registration_link')->isRequired()->end()
        ->end();

    return $treeBuilder;
}

Вот код, как я загружаю конфигурацию:

public function load(array $configs, ContainerBuilder $container)
{
    $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
    $loader->load('services.yml');

    $configuration = new Configuration();
    $config = $this->processConfiguration($configuration, $configs);

    $container->setParameter('user.loginform_registration_link', $config['loginform_registration_link']);
}

Вопрос: как я могу ввести параметры конфигурации в веточку, не устанавливая ее в качестве глобальных переменных ветки, не затрагивая конфигурацию проекта снова и не переопределяя каждое действие / контроллер FOSUserBundle?

...