Het lijkt mij dat het gebruik van Doctrines ODM niet de juiste manier is om dit aan te pakken. U kunt Doctrine nog steeds gebruiken om verbinding te maken met databases en deze te doorzoeken. Maar als u geen entiteitsklassen heeft, lijkt het gebruik van een entiteitsmanager ongepast.
Gebruik Doctrine voor het afhandelen van verbindingen
Hier ziet u hoe u een verbinding maakt met een database met de doctrine Connection
klas:
/** @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 kunt u $connection
. gebruiken als een eenvoudige PDO
voorwerp:
$connection->executeQuery('SELECT * FROM your_table');
Je zou deze code kunnen toevoegen als een service om het overal toegankelijk te maken.
Als u verbinding wilt maken met een andere database voor een ander domein, kunt u deze code gebruiken om het domein te identificeren:
$this->getRequest()->getHost();
Toegang krijgen tot het domein in een actie doe dit:
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();
}