В Symfony 1.2 как я могу получить текущее имя базы данных из файла database.yml в Propel? - PullRequest
0 голосов
/ 15 мая 2010

У меня есть необработанный SQL-запрос, который мне нужно выполнить, но имя базы данных меняется в каждой среде (live: db, dev db_test)

Мне нужно получить текущее имя базы данных из файла database.yml.

Как я могу получить только текущее имя базы данных?

Я использую Propel ORM

Ответы [ 2 ]

2 голосов
/ 15 мая 2010

Изначально я думал, что это будет довольно просто через sfPropelDatabase::getConfiguration(), но это возвращает массив. Поэтому мне пришлось проанализировать результат, чтобы получить данные, и я думаю, что, возможно, есть лучший способ, чем этот:

$propel_config = sfPropelDatabase::getConfiguration();
preg_match('/dbname=([^;]+);/', $propel_config['propel']['datasources']['propel']['connection']['dsn'], $matches);
echo $matches[1];

Кто-нибудь получил что-нибудь лучше?

0 голосов
/ 11 мая 2015

Следующий код работает в Propel2 - по сути, такой же, как принятый ответ.

$mgr = \Propel\Runtime\Propel::getConnectionManager($connectionId);
$dsn = $mgr->getConfiguration()['dsn'];
preg_match('/dbname=([^;]+)/', $dsn, $matches);
echo $matches[1];
...