Me parece que usar Doctrines ODM no es la forma correcta de abordar esto. Todavía puedes usar Doctrine para conectarte a bases de datos y consultarlas. Pero si no tiene clases de entidades, el uso de un administrador de entidades parece inapropiado.
Usar Doctrine para el manejo de conexiones
Así es como se crea una conexión a una base de datos con la doctrina Connection
clase:
/** @var \Doctrine\Bundle\DoctrineBundle\ConnectionFactory $connectionFactory */
$connectionFactory = $this->getContainer()->get('doctrine.dbal.connection_factory');
$connection = $connectionFactory->createConnection(
array('pdo' => new \PDO("mysql:host=$hostname;dbname=$dbname", $username, $password))
);
Ahora puedes usar $connection
como un simple PDO
objeto:
$connection->executeQuery('SELECT * FROM your_table');
Podría agregar este código como un servicio para que sea accesible en todas partes.
Si desea conectarse a una base de datos diferente para un dominio diferente, puede usar este código para identificar el dominio:
$this->getRequest()->getHost();
Para acceder al dominio en una acción haz esto:
public function yourAction(Request $request, /* ... */)
{
// the Controller extends the Container. So need to get it here:
$connectionFactory = $this->get('doctrine.dbal.connection_factory');
// also access the domain like this:
$domain = $request->getHost();
}