Přístup k jiné databázy z presenteru

- spix
 - Člen | 7
 
Zdravím, nikde jsem to tu nenašel tak píšu sem.
Když používám 2+ databází, tak:
- Jak to mám zapsat v configu?
		
Momentálně:
 
	nette:
		database:
			dsn: 'mysql:host=localhost;dbname=xxx'
			user: 'xxx'
			password: 'xxx'
- Jak k nim přistupovat v presenteru
		
Něco na způsob:
if(x == y) mysql_select_db('druha_databaze'); 
Díky, spix
Editoval spix (27. 11. 2012 14:05)

- leninzprahy
 - Člen | 150
 
v cofigu to může vypadat třeba takhle
common:
	parameters:
		database:
			default:
				driver: mysql
				host: *****
				dbname: *****
				user: *****
				password: *****
			druha:
				driver: mysql
				host: *****
				dbname: *****
				user: *****
				password: *****
	nette:
		database:
			default:
				dsn: '%database.default.driver%:host=%database.default.host%;dbname=%database.default.dbname%'
				user: %database.default.user%
				password: %database.default.password%
			druha:
				dsn: '%database.druha.driver%:host=%database.druha.host%;dbname=%database.druha.dbname%'
				user: %database.druha.user%
				password: %database.druha.password%
	services:
		defaultDb: @nette.database.default
		druhaDb: @nette.database.druha
v presenteru pak
	$this->getContext()->defaultDb->table....
	$this->getContext()->druhaDb->table....
pokud by jsi to chtěl injectovat, bylo by potřeba na to napsat továrnu, v tom případě ale záleží, kterou verzi nette používáš, protože se to teď mění/vyvíjí

- leninzprahy
 - Člen | 150
 
nechtěl jsem to zbytečně komplikovat, když
spix napsal(a):
…
- Jak k nim přistupovat v presenteru
 Něco na způsob:
if(x == y) mysql_select_db('druha_databaze');
:)

- mildabre
 - Člen | 62
 
enumag napsal(a):
Dodám, že $this->getContext() bys neměl používat, takže je lepší si v configu zaregistrovat ještě nějaký model, kterému předáš @nette.database.druha jako Connection a tento model si pak injectneš do presenteru. Problém tohoto postupu je, že to připojení není lazy.
V tutoriálu pro začátečníky Nette je v každém presenteru použit právě ten $this->context pro deklarování závislostí presenteru ze služeb v configu takže bych Tě chtěl požádat, zda by Jsi Ty či někdo jiný blíže nevysvětlil jak to bylo míněno, že by se nemělo používat $this->getContext().
Editoval mildabre (11. 12. 2012 21:05)