我正在使用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的每个操作/控制器?