Nette Documentation Preview

syntax
Dumpowanie
**********

Każdy programista debugujący jest dobrym przyjacielem funkcji [php:var_dump], która szczegółowo wypisuje zawartość zmiennej. Niestety, w środowisku HTML wynik traci formatowanie i zlewa się w jedną linię, nie wspominając o sanitizacji kodu HTML. W praktyce konieczne jest zastąpienie `var_dump` bardziej poręczną funkcją. Tą funkcją jest właśnie `dump()`.

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

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

generuje wynik:

[* dump-basic.webp *]

Domyślny jasny motyw można zmienić na ciemny:

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

[* dump-dark.webp *]

Możemy również zmienić głębokość zagnieżdżenia za pomocą [Debugger::$maxDepth |api:Tracy\Debugger::$maxDepth] oraz długość wyświetlanych etykiet za pomocą [Debugger::$maxLength |api:Tracy\Debugger::$maxLength]. Niższe wartości naturalnie przyspieszą Tracy.

```php
Debugger::$maxDepth = 2; // domyślnie: 3
Debugger::$maxLength = 50; // domyślnie: 150
```

Funkcja `dump()` potrafi wypisać również inne przydatne informacje. Stała `Tracy\Dumper::LOCATION_SOURCE` dodaje podpowiedź (tooltip) ze ścieżką do miejsca, w którym funkcja została wywołana. `Tracy\Dumper::LOCATION_LINK` dostarcza nam link do tego miejsca. `Tracy\Dumper::LOCATION_CLASS` przy każdym dumpowanym obiekcie wypisuje podpowiedź ze ścieżką do pliku, w którym zdefiniowana jest jego klasa. Stałe ustawia się w zmiennej `Debugger::$showLocation` jeszcze przed wywołaniem `dump()`. Jeśli chcemy ustawić wiele wartości naraz, łączymy je za pomocą operatora `|`.

```php
Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Ustawia tylko wyświetlanie informacji o miejscu wywołania funkcji
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Ustawia jednocześnie wyświetlanie linku i ścieżki do klasy
Debugger::$showLocation = false; // Wyłącza wyświetlanie dodatkowych informacji
Debugger::$showLocation = true; // Włącza wyświetlanie wszystkich dodatkowych informacji
```

Praktyczną alternatywą dla `dump()` jest `dumpe()` (dump & exit) oraz `bdump()`. Pozwala on nam wypisać wartość zmiennej w panelu Paska Tracy. Jest to bardzo przydatne, ponieważ zrzuty są oddzielone od układu strony, a także możemy do nich dodać komentarz.

```php
bdump([2, 4, 6, 8], 'liczby parzyste do dziesięciu');
bdump([1, 3, 5, 7, 9], 'liczby nieparzyste do dziesięciu');
```

[* bardump-cs.webp *]

Dumpowanie

Każdy programista debugujący jest dobrym przyjacielem funkcji var_dump, która szczegółowo wypisuje zawartość zmiennej. Niestety, w środowisku HTML wynik traci formatowanie i zlewa się w jedną linię, nie wspominając o sanitizacji kodu HTML. W praktyce konieczne jest zastąpienie var_dump bardziej poręczną funkcją. Tą funkcją jest właśnie dump().

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

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

generuje wynik:

Domyślny jasny motyw można zmienić na ciemny:

Debugger::$dumpTheme = 'dark';

Możemy również zmienić głębokość zagnieżdżenia za pomocą Debugger::$maxDepth oraz długość wyświetlanych etykiet za pomocą Debugger::$maxLength. Niższe wartości naturalnie przyspieszą Tracy.

Debugger::$maxDepth = 2; // domyślnie: 3
Debugger::$maxLength = 50; // domyślnie: 150

Funkcja dump() potrafi wypisać również inne przydatne informacje. Stała Tracy\Dumper::LOCATION_SOURCE dodaje podpowiedź (tooltip) ze ścieżką do miejsca, w którym funkcja została wywołana. Tracy\Dumper::LOCATION_LINK dostarcza nam link do tego miejsca. Tracy\Dumper::LOCATION_CLASS przy każdym dumpowanym obiekcie wypisuje podpowiedź ze ścieżką do pliku, w którym zdefiniowana jest jego klasa. Stałe ustawia się w zmiennej Debugger::$showLocation jeszcze przed wywołaniem dump(). Jeśli chcemy ustawić wiele wartości naraz, łączymy je za pomocą operatora |.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Ustawia tylko wyświetlanie informacji o miejscu wywołania funkcji
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Ustawia jednocześnie wyświetlanie linku i ścieżki do klasy
Debugger::$showLocation = false; // Wyłącza wyświetlanie dodatkowych informacji
Debugger::$showLocation = true; // Włącza wyświetlanie wszystkich dodatkowych informacji

Praktyczną alternatywą dla dump() jest dumpe() (dump & exit) oraz bdump(). Pozwala on nam wypisać wartość zmiennej w panelu Paska Tracy. Jest to bardzo przydatne, ponieważ zrzuty są oddzielone od układu strony, a także możemy do nich dodać komentarz.

bdump([2, 4, 6, 8], 'liczby parzyste do dziesięciu');
bdump([1, 3, 5, 7, 9], 'liczby nieparzyste do dziesięciu');