Могу ли я получить логин / пароль базы данных в действии?

#symfony1 #pdo

#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?

Ответ №1:

Посмотрите на код этого плагина, он довольно понятен.

Комментарии:

1. Спасибо, это в значительной степени то, что я пытался воссоздать 🙂

Ответ №2:

Я нашел этот ответ на старом форуме Symfony.

Итак, извлекаем логин и пароль из баз данных.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