tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

Je mozne nejak ziskat vypis SQL history → resp. jak to resite?

před 7 lety

ras
Člen | 127

Ahoj vsem,

s dibi zacinam … a API a na foru jsem nedohledal (snad jsem neprehledl), takze bych se chtel zeptat, jak poresit logovani cinnosti aplikace, tj. jak si zapisujete LOG toho, co se s aplikaci, resp. DB, delo?

Diky za tipy.

Radek

před 7 lety

Milo
Nette Core | 1124

před 7 lety

ras
Člen | 127

MILO … ahoj, to jsem videl a i zkousel, ale nejak jsem nedokazal presvedsit DibiFluent → vzdy mi to tam haze, ze $sql je nedefinovana promenna

Pouzivam Nette s DI, tj. Dibi nepouzivam staticky, ale jako service, tj. jak na to v teto kombinaci, kdy neni mozne pouzit dibi::$sql ?

před 7 lety

HosipLan
Moderator | 4693

Ale je. Fakt :)

před 7 lety

ras
Člen | 127

Nojo, tak jo … nevim proc jsem nabyl dojmu, ze to staticke volani neni mozne … diky za nakopnuti HosipLane

před 7 lety

mkoula
Generous Backer | 32

Reakce po nějaké době. Dneska jsem si nahodil dibi 2.0.1 a dibi::$sql mi nefunguje? Nějaký nápad? Předchozí 1.5 fungovala. SQL se provedou, data z nich dostanu, ale nedokážu dostat finální SQL podobu dotazu…

před 7 lety

Milo
Nette Core | 1124

před 7 lety

mkoula
Generous Backer | 32

Díky. Z mého pohledu se zde děje princip. Pokud to jde složitě nebudeme to dělat jednoduše.

Sice jde použít metody test, která vám dotaz vypíše, ale… Jde logovat do souboru, ale všechno… Jde napsat vlastní callback, ale ten zase bere všechno. Dostanete se tedy, že si budete psát vlastní callback funkci/třídu, kde budete složitě řešit, aby jste se dostali k dotazu na daném místě, kde chcete. A hlavně, budete psát něco co by dle mě měl DB layer řešit.

Dřív jste napsali staticky echo dibi::$sql;, což nebylo pro OOP košer, v Nette změnu nepocítíte, ale při psaní jednodušších věcí, cronů atp., toto bylo naprosto ideální…

před 7 lety

Milo
Nette Core | 1124

Pokud Ti to přijde jako bug, můžeš to nahlásit na GitHub. dibi::$sql stále funguje, musíš mít ale alespoň jeden onEvent callback. Takže stačí:

$db = new DibiConnection($dbConfig);
$db->onEvent[] = function (){};
$db->query('SELECT 1');
var_dump(dibi::$sql);