Dump by měl být otevírán v editory stejně jako chyby
- pawouk
- Člen | 172
HosipLan: Klikneš na dump a ten se otevře ve tvém editoru
:-)
jansfabik: A proč by to nešlo? Jediné co k tomu
potřebuješ je cesta ka souboru a číslo řádku a to už za nás udělal
David. Takže stačí přidat do souboru Debugger na řádek 600 toto:
$output = '<a style="text-decoration: none;" href="editor://open/?file='.$trace[$i]['file'].'&line='.$trace[$i]['line'].'">'.$output.'</a>';
Editoval pawouk (23. 9. 2012 15:10)
- jansfabik
- Člen | 193
pawouk: Při ladění používám takovéto funkce:
function d($val) { foreach (func_get_args() as $arg) Debugger::dump($arg); return $val; }
function bd($val) { foreach (func_get_args() as $arg) Debugger::barDump($arg); return $val; }
function de($val) { foreach (func_get_args() as $arg) Debugger::dump($arg); exit; }
Ten problém je v tom, že já bych chtěl, aby mě to odkázalo do místa,
kde volám funkci d()
(nikoliv Debugger::dump()
),
abych to pak mohl snadno smazat.
- pawouk
- Člen | 172
No jasně. Když si nadefinuješ vlastní funce, tak to nefunguje. Pokud bys nechal dump který definuje samo nette v shortcuts.php tak ti to bude fungovat (i s tím odkazm do zdrojáku). To bys ale musel používat ve svém kódu dump() což ti asi přijde moc dlouhé :-D
Problém je ten, že dump funguje přes debug_backtrace a tam celkem hraje roli kde definuješ ty funce. Prasácká metoda je otevřít si manuálně Debugger a na řádek 591 přidat navýšení:
$i = Helpers::findTrace($trace, 'dump') ? 1 : 0;
$i++;
u tebe možná i o dva podle toho co píšeš. Samořejmě lepší možnost je celý debugger podědit, zkopírovat si onu metodu a tam to změnit abys mohl svobodně aktualizovat na další nette. Měl jsem stejný problém když jsem si vytvořil vlastní shortcut firelog() tam je to obdobné.
Editoval pawouk (23. 9. 2012 16:56)
- David Grudl
- Nette Core | 8228
Zkoušeli jste nastavit Debugger::$showLocation = TRUE? To právě zobrazuje klikací odkaz do editoru.