如何创建自定义配置?

时间:2016-04-21 13:30:33

标签: symfony

我检查了symfony文档

http://symfony.com/doc/master//components/config/definition.html

http://symfony.com/doc/current/best_practices/configuration.html https://symfony.com/doc/current/components/config/resources.html

但我确实看到了写:

我可以为现有配置文件添加新配置吗?

例如config_dev.yml我添加到底部

long id = jdbcTemplace.queryForObject("select sequence_name.nextval from dual",Long.class);

据我所知,我需要在php文件中定义配置规则。哪里?是否有一些现有文件,我必须为config_dev.yml添加规则?也许我必须创建一些扩展某些类的类?

我还创建了一个文件AppConfiguration.php

AppBundle: aha

配置如何知道必须检查此文件规则?

我试图搜索symfony配置的其他一些hello world示例,但到目前为止还没找到。

另外,如果我创建新的配置文件 - 我想我需要使用此https://symfony.com/doc/current/components/config/resources.html

但是目前我更感兴趣的是为现有文件添加额外的值,因为我只想要很少的值。

2 个答案:

答案 0 :(得分:3)

Defining and Processing configuration values中详细解释了这一点。

对于AppBundle而言,这是一项相当大量的工作(仅适用于共享捆绑包)。您可以考虑仅使用具有常量或属性的名为AppConfig的类来定义和使用参数。

symfony best practices中所述:

  

**语义配置:不要做*

     

如在如何在Bundle文章中加载服务配置中所述,Symfony包有两种如何处理配置的选择:通过services.yml文件进行正常服务配置,通过特殊* Extension类进行语义配置。

     

虽然语义配置功能更强大,并且提供了很好的功能,例如配置验证,但定义该配置所需的工作量对于不能作为第三方共享的捆绑包来说是不值得的。派对包。

-

但是要回答你的问题,你需要创建一个Extension class,它将使用处理器来处理你的配置。

答案 1 :(得分:0)

在控制器中至少可能采用这种方式:

在config_dev.yml中

在根目录添加:

parameters:
    test: aaa

在控制器中:

echo $this->container->getParameter('test');