Zděděné Nette\Database\Connection

- jtousek
 - Člen | 951
 
Potřeboval bych podědit Nette\Database\Connection a tu použít, nyní to mám takto:
	services:
		database:
			class: MyConnection
			arguments: ['%database.driver%:host=%database.host%;dbname=%database.dbname%', %database.user%, %database.password%]
Při této konfiguraci ale nefunguje panel v debugbaru. Jak na to jinak?
Editoval jtousek (20. 5. 2012 20:49)

- mkoubik
 - Člen | 728
 
Zkus tam přidat něco jako
services:
	database:
		class: MyConnection
		arguments: ['%database.driver%:host=%database.host%;dbname=%database.dbname%', %database.user%, %database.password%]
		setup:
			- onQuery[] = callback( @databasePanel, logQuery)
	databasePanel:
		class: Nette\Database\Diagnostics\ConnectionPanel
		autowired: false
		setup:
			- Nette\Diagnostics\Debugger::$bar->addPanel( @self )
(píšu z hlavy a nevim jestli to v neonu takhle vůbec jde).

- duke
 - Člen | 650
 
Řeším podobný problém a panel v debugbaru mi funguje. Používám však zápis:
	nette:
		database:
			default:
				dsn: 'mydsn'
				user: myuser
				password: mypassword
	services:
		nette.database.default:
			class: MyConnection('mydsn', 'myuser', 'mypassword')
Bohužel musím opakovat položky dsn, user a password v redefinici nette.database.default. Nešlo by to nějak bez toho? A pokud ne, nešlo by se nějak odkázat na ty výše definované v sekci nette? %nette.database.default.dsn% atp. mi nefunguje.
Nebo existuje nějaký čistší způsob jak nahradit výchozí třídu Nette\Database\Connection za jinou?

- duke
 - Člen | 650
 
Přidám jeden postřeh. Debug bar pro databázi se vygeneruje, pokud v configu bude např.:
common:
	parameters:
		database:
			default:
				dsn: '...'
				user: ...
				password: ...
	# tato část je tu jen kvůli automatickému vygenerování debug baru
	nette:
		database:
			default: []
	services:
		nette.database.default:
			class: MyConnection
			arguments:
				- %database.default.dsn%
				- %database.default.user%
				- %database.default.password%
Pokud existuje elegantnější způsob jak nahradit třídu Nette\Database\Connection, tak prosím dejte vědět.