Nette debug bar, jak přidat databázi?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
PetrHH
Člen | 49
+
0
-

Dobrý den,

ve svém projektu používám několik částí Nette (NetteDatabase, Laděnka, Latte, Formulaře). DebugBar se mi správně zobrazuje, ale bohužel v něm chybí ta část s explain dotazů, které dotazy se provedly atd. Kdysi to fungovalo samo, ale bylo ještě někdy v Nette 2.0 devel.

Nevíte, prosím, jak to tam dostat?

Děkuji!

Petr

vvoody
Člen | 910
+
0
-
	/**
	 * @return Nette\Database\Connection
	 */
	public function createServiceNette__database__default()
	{
		$service = new Nette\Database\Connection('mysql:host=127.0.0.1;dbname=foo', 'root', NULL, array('lazy' => TRUE));
		Nette\Diagnostics\Debugger::getBlueScreen()->addPanel('Nette\\Database\\Diagnostics\\ConnectionPanel::renderException');
		Nette\Database\Helpers::createDebugPanel($service, TRUE, 'default');
		return $service;
	}
PetrHH
Člen | 49
+
0
-

Funguje, moc dekuji! Sice jsem kvuli tomu musel prejit na Nette 2.1, ale to nevadi. Prechod byl docela v pohode.

Jan Tvrdík
Nette guru | 2595
+
0
-

Nastavuje se to v configu, viz dokumentace

HappyFace
Člen | 162
+
0
-

chcel by som sa len opitat ako toto zapnej v nette 2.0? ladenka bezi ale ziaden dotaz tam nieje vidiet :(

NiNu
Člen | 31
+
0
-

HappyFace napsal(a):

chcel by som sa len opitat ako toto zapnej v nette 2.0? ladenka bezi ale ziaden dotaz tam nieje vidiet :(

Mne sa to podarilo nastavit v config.neon pridanim nasledovneho:

common:
	parameters:
		database:
			driver: mysql
			host: localhost
			dbname: my_db
			user: username
			password: password

	nette:
		database:
			default:
				dsn: '%database.driver%:host=%database.host%;dbname=%database.dbname%'
				user: %database.user%
				password: %database.password%
				debugger: true
HappyFace
Člen | 162
+
0
-

NiNu napsal(a):

HappyFace napsal(a):

chcel by som sa len opitat ako toto zapnej v nette 2.0? ladenka bezi ale ziaden dotaz tam nieje vidiet :(

Mne sa to podarilo nastavit v config.neon pridanim nasledovneho:
\--

dakujem takto som to skusal a nepomohlo, ja vidim problem v tom ze tie DB volam dynamicky v specialnej triede ktora sa stara o pripojenie na databazu, kde moj zapis vypada takmer totozne s prikladom co je vyssie lenze v2.0.* neobsahuje methody ako: getBlueScreen a createDebugPanel vedel by mi niekto to prepisat alebo poradit ako to prepisat?
-->
ok tak sa mi to podarili pri trochu dedukcii :)
pridavam svoje riesene ak by niekto potreboval a poprosil by som vas nazor ci je to spravene spravne :)

$panel = new \Nette\Database\Diagnostics\ConnectionPanel;
\Nette\Diagnostics\Debugger::$bar->addPanel($panel);

$connection->onQuery[] = function (\Nette\Database\Statement $statement, $params = array()) use ($panel)
		{
			$panel->logQuery($statement, $params);
		};

Editoval HappyFace (14. 1. 2014 9:23)