在哪里放置我需要的Symfony2自定义参数?

时间:2012-08-25 18:14:41

标签: database configuration symfony parameters

我需要在 Symfony2 中为我的捆绑包配置一些配置 放置它们的最佳位置在哪里?
以及如何从那里检索它们?

我在PARAMETERS.INI中使用了我的默认数据库参数但是我需要额外的参数,我可以在代码中亲自检索它们。

4 个答案:

答案 0 :(得分:4)

例如,人们应该将他的参数保留在捆绑包中 src/Company/SomeBundle/Resources/config/parameters.yml

答案 1 :(得分:3)

要定义所需的任何额外参数,请在config.yml文件中定义它们。类似的东西:

# app/config/config.yml
parameters:
    my_mailer.class:      Acme\HelloBundle\Mailer
    my_mailer.transport:  sendmail

然后,您可以在服务容器可用的任何位置检索它们,例如在控制器内部,就像检索doctrine或swiftmailer之类的任何其他服务一样。例如,在控制器中,执行

$transport = $this->get('my_mailer.transport');

如果需要,可以在paramters.ini中定义这些参数,您将得到相同的结果。

答案 2 :(得分:1)

请参阅How to expose a Semantic Configuration for a Bundle食谱条目。这种方法的一个优点是您可以验证配置。

答案 3 :(得分:0)

在parameters.ini文件中使用不同的部分。您可以使用带有prod1前缀的参数和带有相同的prod2的prod1环境:

parameters.ini:

[parameters]
prod1_database_driver = pdo_mysql
prod1_database_host = 127.0.0.1

# ...

prod2_database_driver = pdo_mysql
prod2_database_host = localhost

他们都使用prod.yml配置,但覆盖了你想从parameters.ini读取的东西:

config_prod1.yml:

imports:
 - { resource: config_prod.yml }

// .. overwrite stuff here