我想知道在symfony 1.4中是否可以在其他地方设置数据库连接密码(和用户名),或者是否可以以某种方式加密这些数据。
要求这样做的客户说这样做是不安全的,所以我正在寻找另一种方法。
谢谢。
您可以在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);
}
}