konfigurace Debuggeru – DibiNettePanel

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

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,

ViPEr*CZ*
Člen | 813
+
0
-

Takhle to nepomůže: https://doc.nette.org/cs/database#… ?

Felix
Nette Core | 1190
+
0
-

Me se tam ten dibi panel dava sam a funguje v pohode..

Filip Procházka
Moderator | 4668
+
0
-

Proč pořád motáte dohromady dibi a Nette\Database?

Dibi panel se registruje sám, pomocí CompilerExtension.

baz
Člen | 42
+
0
-

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
+
0
-

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?

baz
Člen | 42
+
0
-

tak jsem teď ještě zjistil, že „No database selected“ to vrací, ať do configu hodím jakýkoliv název usera, heslo apod. – jakoby to ignoroval…

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Ř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
+
0
-

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 :-)