Nette Documentation Preview

syntax
Dumpování
*********

Každý ladič je dobrým kamarádem s funkcí [php:var_dump], která podrobně vypíše obsah proměnné. Bohužel v prostředí HTML výpis pozbude formátování a slije se do jednoho řádku, o sanitizaci HTML kódu ani nemluvě. V praxi je nezbytné `var_dump` nahradit šikovnější funkcí. Tou je právě `dump()`.

```php
$arr = [10, 20.2, true, null, 'hello'];

dump($arr);
// nebo Debugger::dump($arr);
```

vygeneruje výstup:

[* dump-basic.webp *]

Vychozí světlý motiv můžete změnit na tmavý:

```php
Debugger::$dumpTheme = 'dark';
```

[* dump-dark.webp *]

Dále můžeme změnit hloubku zanoření pomocí [Debugger::$maxDepth |api:Tracy\Debugger::$maxDepth] a délku zobrazovaných popisek pomocí [Debugger::$maxLength |api:Tracy\Debugger::$maxLength]. Nižší hodnoty laděnku přirozeně zrychlí.

```php
Debugger::$maxDepth = 2; // default: 3
Debugger::$maxLength = 50; // default: 150
```

Funkce `dump()` umí vypsat i další užitečné informace. Konstanta `Tracy\Dumper::LOCATION_SOURCE` přidá tooltip s cestou k místu, kde byla funkce zavolána. `Tracy\Dumper::LOCATION_LINK` nám poskytne odkaz na ono místo. `Tracy\Dumper::LOCATION_CLASS` u každého dumpovaného objektu vypíše tooltip s cestou k souboru, ve kterém je definována jeho třída. Konstanty se nastavují do proměnné `Debugger::$showLocation` ještě před voláním `dump()`. Pokud chceme nastavit více hodnot najednou, spojíme je pomocí operátoru `|`.

```php
Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Nastaví pouze výpis o místě volání funkce
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Nastaví zároveň výpis odkazu a cestu ke třídě
Debugger::$showLocation = false; // Vypne výpis dodatečných informací
Debugger::$showLocation = true; // Zapne výpis všech dodatečných informací
```

Praktickou alternativou k `dump()` je `dumpe()` (dump & exit) a `bdump()`. Ten nám umožňuje vypsat hodnotu proměnné v panelu Tracy Baru. To je velmi šikovné, jelikož jsou dumpy oddělené od rozložení stránky a také k nim můžeme umístit komentář.

```php
bdump([2, 4, 6, 8], 'sudá čísla do deseti');
bdump([1, 3, 5, 7, 9], 'lichá čísla do deseti');
```

[* bardump-cs.webp *]

Dumpování

Každý ladič je dobrým kamarádem s funkcí var_dump, která podrobně vypíše obsah proměnné. Bohužel v prostředí HTML výpis pozbude formátování a slije se do jednoho řádku, o sanitizaci HTML kódu ani nemluvě. V praxi je nezbytné var_dump nahradit šikovnější funkcí. Tou je právě dump().

$arr = [10, 20.2, true, null, 'hello'];

dump($arr);
// nebo Debugger::dump($arr);

vygeneruje výstup:

Vychozí světlý motiv můžete změnit na tmavý:

Debugger::$dumpTheme = 'dark';

Dále můžeme změnit hloubku zanoření pomocí Debugger::$maxDepth a délku zobrazovaných popisek pomocí Debugger::$maxLength. Nižší hodnoty laděnku přirozeně zrychlí.

Debugger::$maxDepth = 2; // default: 3
Debugger::$maxLength = 50; // default: 150

Funkce dump() umí vypsat i další užitečné informace. Konstanta Tracy\Dumper::LOCATION_SOURCE přidá tooltip s cestou k místu, kde byla funkce zavolána. Tracy\Dumper::LOCATION_LINK nám poskytne odkaz na ono místo. Tracy\Dumper::LOCATION_CLASS u každého dumpovaného objektu vypíše tooltip s cestou k souboru, ve kterém je definována jeho třída. Konstanty se nastavují do proměnné Debugger::$showLocation ještě před voláním dump(). Pokud chceme nastavit více hodnot najednou, spojíme je pomocí operátoru |.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Nastaví pouze výpis o místě volání funkce
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Nastaví zároveň výpis odkazu a cestu ke třídě
Debugger::$showLocation = false; // Vypne výpis dodatečných informací
Debugger::$showLocation = true; // Zapne výpis všech dodatečných informací

Praktickou alternativou k dump() je dumpe() (dump & exit) a bdump(). Ten nám umožňuje vypsat hodnotu proměnné v panelu Tracy Baru. To je velmi šikovné, jelikož jsou dumpy oddělené od rozložení stránky a také k nim můžeme umístit komentář.

bdump([2, 4, 6, 8], 'sudá čísla do deseti');
bdump([1, 3, 5, 7, 9], 'lichá čísla do deseti');