在Symfony中为Doctrine从PHP重写数据库细节


Overriding database details in yaml for Doctrine from PHP in Symfony

我是Symfony的新手,我在这个阶段做了一些模板,并连接到数据库(Oracle在工作,mysql在家里)。

然而,我现在只有yaml文件中的详细信息,这不是很安全。在我们的PHP应用程序(将转移到Symfony)中,PHP处理安全密码,我们可能最终使用密码管理器Pro或证书之类的东西。

我怎么能覆盖什么在yaml文件和处理密码,连接字符串等从PHP内?

为将来参考(来自http://symfony.com/doc/current/configuration/external_parameters.html#environment-variables,谢谢malcolm),请执行以下操作:

1)在app/config/中添加一个parameters.php,代码如下:

<?php // app/config/parameters.php
$container->setParameter('database_name', 'dbname');
$container->setParameter('database_user', 'username');
$container->setParameter('database_password', 'password');

你可以从你的参数中添加任何你想要的参数。Yml文件(或配置中的其他文件)

2)通过在config.yml的imports:部分中添加以下内容导入该文件:

- { resource: parameters.php }

这将使该部分看起来像:

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }
    - { resource: parameters.php }

,通常位于config.yml的开头。

现在参数。php中的任何内容都将覆盖参数中的任何内容。yml文件。