【问题标题】:Symfony 3.4: How to access bundle configuration in YAMLSymfony 3.4:如何在 YAML 中访问包配置
【发布时间】:2019-02-21 08:35:07
【问题描述】:

我想问一下是否有办法从该包的 YAML 访问包配置。

具体来说,实现Symfony\Component\Config\Definition\ConfigurationInterface 我定义我的包需要一些配置。用户将该配置放在他们的app/config/bundles/my_bundle.yml 中,并带有我的捆绑包所需的所有密钥。

my_bundle: magic_key: '42'

现在,在我的捆绑包中,我有 Resources/config/services.yml,我在其中配置了一些服务,其中一个需要 magic_key

由于我知道magic_key 已设置(因为ConfigurationInterface),我现在可以在扩展Symfony\Component\HttpKernel\DependencyInjection\Extension 的类中访问该键,获取特定服务的定义并为此设置参数。

但是我想在位于我的包中的Resources/config/services.yml 中执行此操作,而不是使用和Extension 类。 我在https://symfony.com/doc/3.4/service_container/expression_language.html 读到应该可以使用parametercontainer 函数,但我做不到。

这背后的原因是我希望在单个位置(YAML 文件)配置我的捆绑服务,而不是在 YAML 和 Extension.php 之间拆分的当前情况。

真的有可能吗?什么是正确的语法?

【问题讨论】:

    标签: symfony configuration yaml symfony-3.4


    【解决方案1】:

    您需要在 MyBundleExtension 类的参数中添加配置,如下所示:

    public function load(array $configs, ContainerBuilder $container)
    {
        $container->setParameter('my_bundle', $config);
    }
    

    然后您可以在服务参数中添加“%my_bundle%”。

    【讨论】:

    • 谢谢,但这只是将整个配置数组传递给服务。
    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 2019-09-17
    • 2013-09-10
    • 2015-07-06
    相关资源
    最近更新 更多