konfigurace Debuggeru – DibiNettePanel

- baz
 - Člen | 42
 
Ahoj,
připravuji první aplikaci v poslední verzi Nette, snažím se využívat
maximum z config.neon, ale nedaří se mi vnutit do debugBaru panel pro DIBI
(pro který jsem se nakonec rozhodl kvůli fci setRowClass, která mi
v Nete\database opravdu chybí).
v configu mám následující:
nette:
		debugger:
			bar: [DibiNettePanel]
		database:
			default:
				dsn: '%database.driver%:host=%database.host%;dbname=%database.database%'
				user: %database.user%
				password: %database.password%
				database: %database.database%
				profiler: TRUE
				debugger: true
				explain: true
services:
		database:
			class: DibiConnection
			arguments: [%database%]
			setup:
				- connect
tím jsem se dostal do fáze, že v debugBaru sice mám queries, ale vždy ukazuje 0 dotazů, i když dotazy jsou…
Nevíte někdo, kde může být chyba?
Díky,

- Filip Procházka
 - Moderator | 4668
 
Proč pořád motáte dohromady dibi a Nette\Database?
Dibi panel se registruje sám, pomocí CompilerExtension.

- baz
 - Člen | 42
 
To „ViPErCZ“:
Na tu stránku jsem koukal, ale mám problém s kódem, který bych měl
vložit do bootstrapu:
$configurator->onCompile[] = function ($configurator, $compiler) {
    $compiler->addExtension('dibi', new DibiNetteExtension);
};
Zapomněl jsem upozornit, že používám Prefixovou verzi pro PHP 5.2., takže mi netbeans hlásí, že to není správný zápis (local mi chybu nehlásí, protože tady 5.3. mám)
proto jsem to zkoušel přes config…
To „HosipLan“:
V čem to motám dohromady? Jsem z toho docela zmatený, takže je to určitě
možný, ale jak v dokumentaci, tak na fóru je spousta informací, ale jak
člověk neví o které přesně verzi se mluví, tak je z toho ještě
větší zmatek…
Mám teda v configu něco špatně? nebo v debugBaru to běží jen v 5.3. verzi?

- baz
 - Člen | 42
 
Zkusil jsem to ještě jednou podle toho návodu (https://doc.nette.org/cs/database). Zatím i s tím, že na 5.2. způsob definování extension v bootsrapu asi nepoběží (budu řešit potom).
Teď mám tedy v boostrapu:
$configurator->onCompile[] = function ($configurator, $compiler) {
	$compiler->addExtension('dibi', new DibiNetteExtension);
};
v configu:
dibi:
	host: localhost
	database: qg
	username: root
	password:
	lazy: TRUE
services:
	authenticator: Authenticator( 'user', @dibi.connection )
v basePresenteru tohle:
$this->db = $this->context->dibi->connection;
$this->db->select('*')->from('user')->fetch();
Změna je v tom, že v debugBaru už vidím ten dotaz, ale hází mi to chybu, že není zvolena databáze…
Nepotřebuje to tahle extension v jiné podobě, než to mám v configu?

- Vojtěch Dobeš
 - Gold Partner | 1316
 
Řešení pro 5.2 (protože nepodporuje anonymní lambda funkce):
function dibi_nette_extension_register($configurator, $compiler) {
        $compiler->addExtension('dibi', new DibiNetteExtension);
}
$configurator->onCompile[] = callback('dibi_nette_extension_register');
				
- baz
 - Člen | 42
 
Skvělý díky moc, už mi tohle šlape kompletně.
problém s no database selected jsem odhalil taky.
v configu jsem měl část „dibi“ zanořenou ještě v parameters –
a to je ta chyba.
Když se do dá hned do „common“, tak to šlape.
Trošku mě zmátlo, že to nehlásilo něco ve smyslu „not connected“, nebo „hostname not defined“, ale takhle mě nejdřív nenapadlo, že vlastně není ani připojen k mysql serveru…
Teď už jen vyřešit https://forum.nette.org/…tte-database#… a můžu jít pro dnešek spát :-)