代码之家  ›  专栏  ›  技术社区  ›  meridius

symfony3.4:如何在YAML中访问bundle配置

  •  0
  • meridius  · 技术社区  · 7 年前

    我想问一下,是否有一种方法可以从该包的YAML访问包配置。

    具体来说,实施 Symfony\Component\Config\Definition\ConfigurationInterface 我定义我的包需要一些配置。用户将该配置放入 app/config/bundles/my_bundle.yml 带着我包里需要的钥匙。

    my_bundle: magic_key: '42'

    现在在我的包裹里 Resources/config/services.yml 其中我配置了一些服务 magic_key 为了其中一个。

    因为我知道 魔法钥匙 已设置(因为 ConfigurationInterface )我现在可以在一个类中访问这个键了 Symfony\Component\HttpKernel\DependencyInjection\Extension ,获取特定服务的定义并为此设置参数。

    资源/配置/服务.yml 位于我的包中,而不是使用和 Extension 班级。 我读过 https://symfony.com/doc/3.4/service_container/expression_language.html 应该可以使用 parameter container

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Loïc Ovigne    7 年前

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

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

    然后可以在服务参数中添加“%my\u bundle%”。