Database 在哪里放置我需要的Symfony2自定义参数?
我需要在Symfony2中对我的包进行一些配置 把它们放在哪里最好?Database 在哪里放置我需要的Symfony2自定义参数?,database,configuration,symfony,parameters,Database,Configuration,Symfony,Parameters,我需要在Symfony2中对我的包进行一些配置 把它们放在哪里最好? 我怎样才能从那里取回它们 我在parameters.INI中使用了默认的DB参数,但我需要额外的参数,以便在代码中亲自检索它们 在parameters.ini文件中使用不同的部分。可以使用前缀为prod1的参数创建prod1环境,也可以使用前缀为prod2的参数创建prod2环境: parameters.ini: [parameters] prod1_database_driver = pdo_mysql prod1_data
我怎样才能从那里取回它们
我在
parameters.INI
中使用了默认的DB参数,但我需要额外的参数,以便在代码中亲自检索它们 在parameters.ini文件中使用不同的部分。可以使用前缀为prod1的参数创建prod1环境,也可以使用前缀为prod2的参数创建prod2环境:
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读取的内容:
[parameters]
prod1_database_driver = pdo_mysql
prod1_database_host = 127.0.0.1
# ...
prod2_database_driver = pdo_mysql
prod2_database_host = localhost
config_prod1.yml:
imports:
- { resource: config_prod.yml }
// .. overwrite stuff here
要定义所需的任何额外参数,请在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');
如果需要,您可以在parameters.ini中定义这些参数,您将得到相同的结果。请参阅cookbook条目。这种方法的优点之一是您可以验证配置。例如,应该将其参数保存在bundle中
src/Company/SomeBundle/Resources/config/parameters.yml
如何在controller中访问它们?您必须使用$this->getParameter('my\u mailer.transport')来访问参数,而不是$this->getParameter('my\u mailer.transport')