database.yml配置文件的替代方案

时间:2014-08-26 15:09:49

标签: php database symfony1 yaml configure

我想知道symfony 1.4是否可以在其他地方设置数据库连接密码(和用户名),或者是否有可能以某种方式加密这些数据。

要求它的客户说它结果不安全,所以我正在寻找另一种方法来做到这一点。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以在yml文件中使用php:

all:
  doctrine:
    class: sfDoctrineDatabase
    param:
      dsn: '<?php echo DSN_CONSTANT ?>'
      username: '<?php echo $_ENV['DB_USERNAME'] ?>'
      password: '<?php echo $_ENV['DB_PASSWORD'] ?>'

编辑:

上述方法将在php文件中存储文件系统的凭据。如果您想阻止这种情况,请将class更改为您自己的,扩展它,并以您想要的任何其他方式检索凭据,例如,环境变量:

class MyDoctrineDatabase extends sfDoctrineDatabase {
  public function initialize($parameters = array())
  {
    $parameters['dsn'] = $_ENV['DSN'];
    $parameters['username'] = $_ENV['DB_USERNAME'];
    $parameters['password'] = $_ENV['DB_PASSWORD'];
    return parent::initialize($parameters);
  }
}