vypsani promenne primo z presenteru

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

jak si rychle zobrazujete nejakou promenou .. kdyz v presenteru proste potrebujete overit co je uvnitr … abych ji nemusle posilat do sablony a tam ji nejak zobrazovat

batko
Člen | 219
+
0
-
dump($foo);
Šaman
Člen | 2666
+
0
-

Dump se občas špatně hledá a je k ničemu při ajaxových refreshech, doporučuju spíš barDump($foo). Problém je, že na to není zkratka, takže se musí volat Nette\Diagnostics\Debugger::barDump(), nebo si alias vytvořit (stačí v bootstrapu, lepší je to v samostatném souboru a do bootsrapu includnout).
Třeba takto:

<?php
# Definujeme si zkratku pro rychlé dumpování do DebugBaru
function barDump($var, $title='')
{
    $backtrace = debug_backtrace();
    $source = (isset($backtrace[1]['class'])) ?
        $backtrace[1]['class'] :
        basename($backtrace[0]['file']);
    $line = $backtrace[0]['line'];
    if($title !== '')
        $title .= ' – ';
    return Nette\Diagnostics\Debugger::barDump($var, $title . $source . ' (' . $line .')');
}
?>

pak se ti to vypisuje v debug baru i s jménem souboru a řádkem, kde se to zavolalo. Navíc to pak můžeš v kódu nechat, na produkci se ti to neukáže a v ladícím módu vidíš všechny dumpy. (To můžeš i u dump(), ale při ladění ti ten výpis na obrazovku může rozhotit design.)

Použití:

<?php
barDump(10);
bardump(20, "nějaký popis");
?>

Editoval Šaman (10. 4. 2014 22:14)