Dynamické vytváření připojení k databázím

Ahorn
Člen | 5
+
0
-

Zdravím,

potřeboval bych od Vás poradit ohledně připojování k databázím.

Uživatel se nejprve musí přihlásit, při přihlášení vybírá databázi.
Podle této databáze ověřit údaje přihlášení.
Dále celá aplikace využívá jen tuto databázi.
Některé databáze se od sebe liší strukturou (sjednotím v modelu)

Aplikace nepotřebuje defaultní databázi, nebo o tom zatím nevím :)

Předem Vám děkuji za rady

Martk
Člen | 661
+
0
-

V jedné aplikaci jsem to udělal přibližně viz níže.

V konfiguračním souboru si zaregistruješ službu:

services:
	- DatabaseProvider

Tahle služba bude vypadat přibližně takto, pokud použiješ session:

class DatabaseProvider {

	public function __constructor(Session $session) {} // vyžádáš si to co potřebuješ k získání databáze

	public function getDatabase(): string {
		if (!isset($session['database']) { } // error, exception, popř. defaultní databáze

		// nějaké ošetření, ať se to nepřipojuje kam nechceš...

		return $session['database'];
	}

}

a pak ji předáš jako název databáze v configu:

database:
	db: @DatabaseProvider::getDatabase()
Ahorn
Člen | 5
+
0
-

Super, děkuji Ti pěkně