Внедрить конфигурацию пакета в ветку без глобальных переменных

Я работаю с 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?

Невозможно расширить config.yml из пакета и установить там глобальные переменные ветки? Значит, вы не делаете этого в каждом проекте? Я думаю, это правильный путь.

revengeance 02.05.2018 21:21

Если вы действительно думаете, что вам нужно это сделать, посмотрите, как TwigBundle / DependencyInjection внедряет глобальные объекты. Но расширение ветки, вероятно, является более простым и понятным подходом.

Cerad 02.05.2018 21:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
0
2
40
0

Другие вопросы по теме