Струва ми се, че използването на Doctrines ODM не е правилният начин за подход към това. Все още можете да използвате Doctrine, за да се свързвате с бази данни и да ги правите заявки. Но ако нямате класове на обекти, използването на мениджър на обекти изглежда неподходящо.
Използвайте Doctrine за обработка на връзки
Ето как създавате връзка с база данни с доктрината Connection
клас:
/** @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))
);
Сега можете да използвате $connection
като обикновен PDO
обект:
$connection->executeQuery('SELECT * FROM your_table');
Можете да добавите този код като услуга за да го направите достъпен навсякъде.
Ако искате да се свържете с различна база данни за различен домейн, можете да използвате този код, за да идентифицирате домейна:
$this->getRequest()->getHost();
За достъп до домейна чрез действие направете това:
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();
}