我可以在操作中获取数据库登录名/密码吗?

时间:2011-04-08 08:07:00

标签: symfony1 pdo

我有一个symfony动作,它创建了一个数据库的mysqldump:

public function executeBackup(sfWebRequest $request)
{
    $dump = `mysqldump -u root -proot ec2`;
    $fp = fopen("php://temp", 'r+');
    fputs($fp, $dump);
    rewind($fp);

    $this->setLayout(false);
    header('Content-Type: application/gzip');
    header('Content-Disposition: attachment; filename="db.sql"');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    $this->fichier = stream_get_contents($fp);
}

我在操作中编写了数据库登录名和密码(root / root),但是如何从yml配置中获取它们?

2 个答案:

答案 0 :(得分:3)

看看the code of this plugin,这是非常明显的。

答案 1 :(得分:0)

我找到了this answer on the old Symfony forum

因此,从 databases.yml 检索登录密码应如下所示:

$file = sfConfig::get('sf_config_dir').'/databases.yml';
$config = file_exists($file) ? sfYaml::load($file) : array();

$db_params = $config['prod']['propel']['param']; // should follow the databases.yml structure
$username = $db_params['username'];
$password = $db_params['password'];

HTH