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