Det forekommer mig, at brug af Doctrines ODM ikke er den rigtige måde at gribe dette an på. Du kan stadig bruge Doctrine til at oprette forbindelse til databaser og forespørge efter dem. Men hvis du ikke har nogen enhedsklasser, ser brugen af en enhedsadministrator ud til at være upassende.
Brug Doctrine til forbindelseshåndtering
Her er hvordan du opretter en forbindelse til en database med doktrinen Connection
klasse:
/** @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 bruge $connection
som en simpel PDO
objekt:
$connection->executeQuery('SELECT * FROM your_table');
Du kan tilføje denne kode som en tjeneste for at gøre det tilgængeligt overalt.
Hvis du vil oprette forbindelse til en anden database for et andet domæne, kan du bruge denne kode til at identificere domænet:
$this->getRequest()->getHost();
For at få adgang til domænet i en handling gør dette:
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();
}