Necesito saber el nombre de base de datos y base de datos de nombre de servidor dentro de un proyecto Symfony. ¿Cómo se puede acceder a la configuración de conexión de la base de datos actual mediante programación en Symfony (usando Doctrine)?configuración de la conexión de base de datos actual doctrina en Symfony
10
A
Respuesta
6
por ejemplo:
foreach(Doctrine_Manager::getInstance()->getConnections() as $connection){
$conn = $connection->getOptions();
preg_match('/host=(.*);/', $conn['dsn'], $host);
var_dump($host);
}
2
El dbname en el DSN para una conexion específica:
databases.yml
all:
conexion1:
class: sfDoctrineDatabase
param:
dsn: 'mysql:host=localhost;dbname=basegestion1'
username: miusuario
password: ********
conexion2:
class: sfDoctrineDatabase
param:
dsn: 'mysql:host=localhost;dbname=baseestadisticas1'
username: miusuario
password: ********
En la Acción:
$mConexion1Options = Doctrine_Manager::getInstance()->getConnection('conexion1')->getOptions();
preg_match('/dbname=(.*)/', $mConexion1Options['dsn'], $mDbConexion1);
Entonces , el dbna mí es:
echo $mDbConexion1[1]; //basegestion1
1
Usar este código:
$myConnection = Doctrine_Manager::getInstance()->getConnection('doctrine')->getOptions();
$dsnInfo = $this->parseDsn($myConnection['dsn']);
$settings = array();
$settings['dbUser'] = (string) $myConnection["username"];
$settings['dbPassword'] = (string) $myConnection["password"];
$settings['dbHost'] = (string) $dsnInfo["host"];
$settings['dbName'] = (string) $dsnInfo['dbname'];
private function parseDsn ($dsn)
{
$dsnArray = array();
$dsnArray['phptype'] = substr($dsn, 0, strpos($dsn, ':'));
preg_match('/dbname = (\w+)/', $dsn, $dbname);
$dsnArray['dbname'] = $dbname[1];
preg_match('/host = (\w+)/', $dsn, $host);
$dsnArray['host'] = $host[1];
return $dsnArray;
}
15
Asumiendo que tiene el EntityManager como $this->em
Obtener la base de datos Nombre Doctrina de Symfony2:
$this->em->getConnection()->getDatabase();
Get Hacer Anfitrión ctrine Nombre (Name Server) de Symfony2:
$this->em->getConnection()->getHost();
Hay muchos otros parámetros que puede acceder desde la conexión como username
, port
y password
. Ver el connection class para obtener más información
0
Prueba este
$conn = Doctrine_Manager::getInstance()->getConnection('doctrine')->getOptions();
$dns_array = split(';', $conn['dsn']);
preg_match('/host=(.*);/', $dns_array, $dbhost);
preg_match('/dbname=(.*)/', $dns_array, $dbname);
$dbname = $dbname;
$dbhost = $dbhost;
$dbuser = $conn['username'];
$dbpass = $conn['password'];
Actualizado
Como Function split() is deprecated
manera se recomienda así que aquí.
$dns_array = explode(';', $conn['dsn']);
preg_match('/host=(.*)/', $dns_array[0], $dbhost);
preg_match('/dbname=(.*)/', $dns_array[2], $dbname);
$dbhost = $dbhost[1];
$dbname = $dbname[1];
$dbuser = $conn['username'];
$dbpass = $conn['password'];
Cuestiones relacionadas
- 1. Sin conexión de base de datos a través de doctrine en symfony
- 2. accesorios de datos específicos de entorno con Symfony + Doctrina
- 3. Ignorar duplicados cuando se utiliza INSERT en una base de datos con Symfony y Doctrina
- 4. Conexión Doctrina 2 al final de MSSQL Symfony 2 En Linux
- 5. dónde cambiar la configuración de conexión de la base de datos en Orchard MVC CMS
- 6. Doctrina 2 - Configuración de múltiples bases de datos y el uso de
- 7. Cómo habilitar ENUM en Symfony 2/Doctrina
- 8. Actualizar varias columnas con la doctrina de Symfony
- 9. cómo deshabilitar la configuración de la base de datos en symfony2
- 10. Acceso a la base de datos en un oyente en Symfony 2
- 11. Conexión a la base de datos MySQL en el servidor
- 12. Retraso en la conexión a la base de datos C#
- 13. Conexión de base de datos heterogénea
- 14. informes de Crystal - cerrar la conexión de base de datos
- 15. Autenticación Symfony 2 con (doctrina) Entidad
- 16. Cómo borrar o vaciar la matriz de colección en Symfony doctrina
- 17. CakePHP - configuración de base de datos basada en la URL
- 18. mantener la configuración en la base de datos
- 19. conexión tiene una base de datos remota
- 20. Establecer la base de datos actual en MySQL script
- 21. Cómo obtener la conexión Cadena de una base de datos
- 22. ¿Dónde almacena su conexión de base de datos?
- 23. configuración de conexión Websocket
- 24. Java simula la conexión de base de datos
- 25. Symfony, Doctrina y "clases de proxy siempre están regenerando"
- 26. Lea la configuración de .NET desde la base de datos
- 27. Conexión agrupación con la base de datos de Access
- 28. Conexión a la base de datos de Python Cerrar
- 29. cadena de conexión para servidor de base de datos remota
- 30. Configuración de la base de datos de Joomla
Creo que hay una manera mucho más elegante, ver http://stackoverflow.com/a/26505585/744975 –