Mi sembra che l'uso di Doctrines ODM non sia il modo giusto per affrontare questo problema. Puoi comunque usare Doctrine per connetterti ai database e interrogarli. Ma se non hai classi di entità, l'uso di un gestore di entità sembra inappropriato.
Usa Dottrina per la gestione della connessione
Ecco come creare una connessione a un Database con la dottrina Connection
classe:
/** @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))
);
Ora puoi usare $connection
come un semplice PDO
oggetto:
$connection->executeQuery('SELECT * FROM your_table');
Puoi aggiungere questo codice come servizio per renderlo accessibile ovunque.
Se vuoi connetterti a un database diverso per un dominio diverso puoi utilizzare questo codice per identificare il dominio:
$this->getRequest()->getHost();
Per accedere al dominio con un'azione fai questo:
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();
}