Nedokonalé zjišťování zdroje SQL dotazu vol.2
- trash
- Člen | 2
Zdravíčko,
řeším něco podobného jako kolega zde.
Akorát v rámci čistého dibi a Tracy. Metody dibi máme obaleny ještě
vlastním wrapperem, takže když pak Tracy ukazuje u SQL dotazu backtrace tak
nám to odkazuje na náš wrapper a ne odkud to bylo vyvoláno.
Takže ve zkratce by se mi hodil výpis backtrace u sql dotazu více do hloubky. A asi pro ostatní s možností konfigurace jak do hloubky vypisovat.
(dibi)Event.php:
$dibiDir = dirname((new \ReflectionClass('dibi'))->getFileName()) . DIRECTORY_SEPARATOR;
foreach (debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) as $row) {
if (isset($row['file']) && is_file($row['file']) && !str_starts_with($row['file'], $dibiDir)) {
$this->source[] = [$row['file'], (int) $row['line']]; // pridavat do pole
//break; - nedelat brake
}
}
(tracy)Panel.php
foreach($event->source as $sEvent) // prochazet a vypisovat pole
{
// moznost z nastaveni vypisovat urcitou hloubku backtrace
$s .= Tracy\Helpers::editorLink($sEvent[0], $sEvent[1]); // editorLink s <br /> na konci
}
Je to jenom takovej rychlej nástřel. Nevím, jestli to neovlivní něco jiného nebo jestli jsem nepřehlédnul možnost jak to nastavit.
Co myslíte ?
Děkuji