如何从捆绑包外部访问Symfony 2捆绑包配置?

时间:2013-09-06 12:01:40

标签: php symfony configuration bundle

,不要链接到How to expose a Semantic Configuration for a Bundle

事实上,我已经拥有一个完全可用的捆绑包,有许多配置选项。捆绑包实际上是在app/config.yml配置的,在其自己的部分。我已经使用TreeBuilder实现了ConfigurationInterface,依此类推。我能够成功地在捆绑包中注入配置并在捆绑代码中使用它。

然而,我想做的事情非常简单,但即使我使用Composer发布并安装了fully working bundle,我也只使用Symfony 2几周了,可能的答案是确实非常简单......但我不知道!

如何从我的应用控制器访问捆绑配置?

例如......这是app/config.yml的配置(其中“devices”有数组原型):

my_bundle:
    format: standard
    devices:
        main:
            color: yellow
            capacity: 200

如何使用捆绑包从应用程序的控制器访问这些值?

3 个答案:

答案 0 :(得分:10)

整个配置在参数paggy_boleto.config中作为嵌套数组公开。要在控制器中访问它:

$config = $this->container->getParameter('paggy_boleto.config');

var_dump要查看的配置,如何访问其中的条目。

如果您需要访问其他捆绑包配置,则必须查看捆绑包Extension类,以及它们如何将配置公开到di容器中。像你这样的一些包暴露了整个配置,而其他一些包则没有(它们只公开特定的参数)。

在PaggyBaletoBundle中,这是相关的line

$container->setParameter('paggy_boleto.config', $config);

答案 1 :(得分:3)

这取决于您如何实现bundle的配置构建器 - 它使用特定前缀预先设置其参数。

根据your casepaggy_boleto.config

答案 2 :(得分:0)

您应该将parameters.yml用于此目的。 然后你可以像这样轻松地获取控制器中的东西

$parameters = $this->container->getParameter('devices');