Dynamické připojování k DB

krcuk41
Člen | 12
+
0
-

Ahoj,

chtěl bych požádat o radu. Snažím se vymyslet jak se připojovat k různým DB pro různé uživatele. Představoval bych si to tak, že budu mít jednu DB, ve které budou zánamy o uživateli a jakou má využívat DB. Ale data by se už zobrazovala právě z DB uložené u uživatele. Je nutné aby vše bylo dynamické.

Nenapadá vás nějáké řešení? Předem díky.

GEpic
Člen | 562
+
0
-

To je tak velký (myslím monstrózní) projekt že je potřeba mít víc databází? :)

Editoval GEpic (10. 5. 2017 19:10)

CZechBoY
Člen | 3608
+
0
-

Vše budeš tahat z jedné databáze nebo budeš někdy pracovat s 2?
Pokud jen s jednou tak by mělo stačit označit označit dané nastavení db jako autowired:true a ostatní na false. Pokud teda dokážeš zařídit aby při kompilování DIC si věděl jakou db zvolit.

Pokud ne tak musíš napsat aplikaci tak, aby si brala databázi dynamicky z nějakýho poolu, ptala se resolveru. Resolver ti potom vrátí normálně instanci databáze – připojenou, nastavenou, prostě ready to use.

class MyModel
{
	public function __construct(DbResolver $dbresolver)
	{
		$this->dbResolver = $dbResolver;
	}

	protected function getDatabase()
	{
		return $this->dbResolver->getDatabase();
	}

	public function getArticles()
	{
		$this->getDatabase()->...
	}
}

Editoval CZechBoY (10. 5. 2017 23:20)