Ich suche nach einer guten Lösung für die direkte Verbindung von Datenbanken innerhalb von Symfony mit Doctrine für das Entitätsmanagement.
Das Szenario, das ich habe, ist, dass alle eingehenden Benutzer unseres Dienstes * .website.com-Adressen wie client1.website.com besuchen.
Wir möchten eine Doctrine-Entität für die Client-Tabelle verwenden, um dann ihre Datenbankanmeldeinformationen auf der Grundlage der URL ihres Kontos schnell ausfindig zu machen.
Bisher habe ich die folgenden Themen im Stackoverflow gefunden, in denen die Datenbankanmeldeinformationen dynamisch geändert werden - aber keine klar umsetzbaren Lösungen.
Ich möchte eine Zusammenarbeit vorschlagen, um eine funktionierende Lösung zusammenzustellen, und ich werde einen Blog / Tutorial Post für andere Leute zusammenstellen, die Datenbankverbindungsparameter in Symfony ändern wollen.
Hier sind einige verwandte Beiträge:
Dynamische Datenbankverbindung symfony2
Symfony2, Dynamische DB-Verbindung / Vorübergehende Deaktivierung von Doctrine Service
Danke!
Wenn $ em vorhandener Entitätsmanager ist und Sie die Konfiguration erneut verwenden möchten, können Sie Folgendes verwenden:
%Vor% Ich musste etwas ähnliches tun - Runtime-Erkennung eines verfügbaren Datenbankservers. Ich habe es getan, indem ich den Parameter doctrine.dbal.connection_factory.class
überschrieben habe und meine eigene Ableitung der ConnectionFactory
Klasse des Doctrine-Pakets ersetzt habe
Meine services.yml liefert den Parameter und zeigt auf meine benutzerdefinierte Klasse
%Vor%Geben Sie dann Ihre Erkennungslogik in Pfad \ To \ Class \ CustomConnectionFactory.php
ein %Vor%Beachten Sie auch, dass Symfony 3.2 die Möglichkeit bietet, Umgebungsvariablen in Containerkonfigurationen zu verwenden und ihre Werte bei Bedarf zu verwenden (anstatt sie zu reparieren, wenn der Container kompiliert wird). Weitere Details finden Sie in der Blog-Ankündigung .