Zásadní novinky v Tracy v roce 2019

před měsícem od David Grudl  

V posledním roce se v Tracy objevilo spoustu novinek zlepšujících uživatelský zážitek. Pojďme si shrnout ty nejdůležitější z nich.

10× rychlejší dumpování

Funkce dump() a všechny její variace, jako třeba barDump() atd., vypisují pole a objekty chytrým způsobem. Generují totiž HTML kód pouze těch částí, které jsou ihned viditelné, bez nutnosti je rozkliknout. HTML kód sbalených částí pak generuje JavaScript až v momentě rozkliknutí.

Což jednak poměrně výrazně zmenší objem kódu, ale především zrychlí jeho zobrazení, protože prohlížeč nemusí ušetřený kód parsovat. Mohlo by se zdát, že parsování HTML je něco tak rychlého, že takhle optimalizace nebude mít velký vliv, ale opak je pravdou. Zrychlení je opravdu dramatické, běžně 10násobné. Podívejte se na video zachycující načítání webu ve vývojářské konzoli:

Novinky v AJAXu

Tracy dokáže už nějakou dobu zobrazovat AJAXové requesty a to dokonce bez nutnosti jakékoliv další konfigurace na straně JavaScriptu. Ve verzi 2.6 se objevila novinka a tou je možnost zobrazení více než jednoho požadavku. Standardně se zobrazují 3 a hodnotu můžete změnit JavaScriptem v proměnné window.TracyMaxAjaxRows.

Verze 2.7.2 přichází s další novinkou a tou je odlišení ajaxových panelů. V pravém horním rohu se nyní objevuje „ajax“.

CLI panel

Součástí „BlueScreen“ je nyní CLI panel, pokud chyba vznikla při běhu programu spouštěného z příkazové řádky. A s tímto panelem se zaloguje.

Vylepšené UX

Do Tracy se dostala řada kosmetických vylepšení, které zlepšují uživatelský dojem. Za všechny bych zmínil třeba možnost řadit tabulky podle libovolného sloupce jedním kliknutím:

GDPR ready

Abyste předešli logování citlivých informací v BlueScreen, můžete označit, u kterých klíčů se nemá vypisovat obsah:

Tracy\Debugger::getBlueScreen()->keysToHide[] = 'login';

Standardně se nevypisuje obsah klíčů: password, passwd, pass, pwd, creditcard, credit card, cc a pin.

PSR-3 adaptéry

Nyní můžete v Tracy používat PSR-3 loggery a naopak Tracy loggery použít v kódu očekávajícím PSR-3 logger. Slouží k tomu dvojice adaptérů Tracy\Bridges\Psr\PsrToTracyLoggerAdapter a TracyToPsrLoggerAdapter.

One more thing

A nakonec jedna vychytávka spojující Tracy a Latte. Tracy umí využít sourcemapping poskytovaný Latte a zobrazit nejen místo kde nastala chyba ve vygenerovaném PHP kódu, ale také přímo v šabloně.