Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在哪里放置我需要的Symfony2自定义参数?_Database_Configuration_Symfony_Parameters - Fatal编程技术网

Database 在哪里放置我需要的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

我需要在Symfony2中对我的包进行一些配置 把它们放在哪里最好?
我怎样才能从那里取回它们


我在
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')