Det verkar för mig att använda Doctrines ODM inte är rätt sätt att närma sig detta. Du kan fortfarande använda Doctrine för att ansluta till databaser och fråga dem. Men om du inte har några enhetsklasser verkar användningen av en enhetshanterare vara olämplig.
Använd Doctrine för anslutningshantering
Så här skapar du en anslutning till en databas med doktrinen Connection
klass:
/** @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))
);
Nu kan du använda $connection
som en enkel PDO
objekt:
$connection->executeQuery('SELECT * FROM your_table');
Du kan lägga till den här koden som en tjänst för att göra den tillgänglig överallt.
Om du vill ansluta till en annan databas för en annan domän kan du använda den här koden för att identifiera domänen:
$this->getRequest()->getHost();
För att komma åt domänen i en åtgärd gör så här:
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();
}