Zdá se mi, že používání Doctrines ODM není správný způsob, jak k tomu přistupovat. Stále můžete používat Doctrine pro připojení k databázím a dotazování na ně. Ale pokud nemáte žádné třídy entit, použití správce entit se zdá být nevhodné.
Použít Doctrine pro správu připojení
Zde je návod, jak vytvořit připojení k databázi pomocí doktríny Connection
třída:
/** @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))
);
Nyní můžete použít $connection
jako jednoduché PDO
objekt:
$connection->executeQuery('SELECT * FROM your_table');
Tento kód můžete přidat jako službu aby byla dostupná všude.
Pokud se chcete připojit k jiné databázi pro jinou doménu, můžete doménu identifikovat pomocí tohoto kódu:
$this->getRequest()->getHost();
Pro přístup k doméně v akci udělejte toto:
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();
}