11

不要链接到如何公开捆绑的语义配置

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

然而,我想做的事情非常简单,但即使我已经发布了一个可以使用 Composer 安装和安装的完整工作包,但我使用 Symfony 2 只玩了几个星期,可能答案确实非常简单...... .但我不知道!

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

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

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

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

4

3 回答 3

11

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

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

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

如果您需要访问其他捆绑配置,您必须查看捆绑扩展类,它们如何将配置公开到 di 容器中。像您这样的某些捆绑包会公开整个配置,而其他一些捆绑包则不会(它们仅公开特定参数)。

在 PaggyBaletoBundle 这是相关的

$container->setParameter('paggy_boleto.config', $config);
于 2013-09-06T12:14:00.687 回答
3

这取决于您如何实现捆绑包的配置构建器 - 它在其参数前面加上某个前缀。

根据你的情况paggy_boleto.config

于 2013-09-06T12:20:44.247 回答
0

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

$parameters = $this->container->getParameter('devices');
于 2013-09-06T12:12:46.290 回答