Symfony macht jede DBAL-Verbindung zu einem separaten Dienst im DI-Container. Der Standardname lautet immer database_connection
und ist normalerweise nur ein Alias für doctrine.dbal.admin_connection
.
Dann, wenn Sie andere Verbindungen haben, werden sie automatisch hinzugefügt. Zum Beispiel habe ich default
und admin
Verbindungen so Symfony erstellt:
doctrine.dbal.admin_connection
doctrine.dbal.default_connection
Sie app/console debug:container | grep "DBAL\\\\Connection"
in der Konsole verwenden können alle registrierten Verbindungen zu entleeren.
Ich habe mich falsch erklärt. Was ich mich wundere ist, wenn ich eine neue Verbindung erstellen kann, wenn Sie die Parameter von einem anderen Server erhalten und die gleiche Verbindung als Standard erhalten – user26776
Sie können einen Dienst mit 'set()' Methode auf 'überschreiben service_container'. Siehe https://github.com/symfony/dependency-injection/blob/3.1/Container.php#L162. Ich denke jedoch nicht, dass dies eine gute Idee ist, weil Sie nicht wissen können, welche anderen Dienste diesen Dienst bereits als Abhängigkeit registriert haben und dass er irgendwo unerwartet kaputt gehen könnte. – martin