2016-10-17 8 views

Antwort

1

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.

+0

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

+1

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