Tracy integrace do Nette

14.01.2018
2 min read
352 words

Tracy jiste každý, kdo používa Nette, zná, ale znáte všechny její nastavení?

Tracy je skvělý nástroj, už si nedovedu představit projekt bez ní. Všichni ji používáme v rámci Nette Frameworku. Má dokonce i svůj web (https://tracy.nette.org/).

Někdo ji používá i samostatně, jenom aby se mu dobře vyvíjelo. To je určitě validní přístup. Já bych se však rád podíval na Tracy integraci v rámci Nette, protože tam je cesta dosti neprobádaná.

Aktuální dokumentace hovoří o pár konfiguračních hodnotách. Následující nastavení můžete vložit přímo do souboru config.neon.

tracy:
    email: %webmasterEmail%
    strictMode: true
    editor: ...
    browser: ...
    bar: # panely do Debugger baru
        - Nette\Bridges\DITracy\ContainerPanel # alias DI Container baru
        - IncludePanel
        - XDebugHelper('myIdeKey')
        - MyPanel(@MyService)
    blueScreen: # panely do Laděnky
        - DoctrinePanel::renderException

V rámci jednoho PR jsem se pokusil zachytit a popsat všechny nastavení, které Tracy můžete předat.

PR: https://github.com/nette/docs/pull/669

tracy:
    # email, na který se posílají notifikace, že došlo k chybě
    email: dev@example.com
    fromEmail: robot@example.com

    # ve vývojovém režimu zobrazí chyby typu notice nebo warning jako BlueScreen
    strictMode: true

    # zobrazí umlčené (@) chybové hlášky
    scream: true

    # formát odkazu pro otevření v editoru
    editor: editor://open/?file=%file&line=%line

    # cesta k prohlížeči, který bude automaticky otevírat zalogované BlueScreen v CLI režimu
    browser: ...

    # pro jaké úrovně chyb (E_WARNING, E_ALL, ...) se loguje i BlueScreen
    logSeverity:

    # cesta k šabloně s vlastní stránkou pro chybu 500
    errorTemplate: ...

    # zobrazí Debugger Bar na spodu stránky
    showBar: true

    # maximální délka řetězce vypisovaná funkcí dump()
    maxLength: 150

    # do kolika úrovní zanoření má vypisovat funkce dump()
    maxDepth: 3

    # zobrazí místo, kde byla volána funkce dump()
    showLocation: false

    editorMapping:
        # originál: nová
        /var/www/html: /data/web
        /home/web: /srv/html

    # přidá panely do Debugger Baru
    bar:
        - Nette\Bridges\DITracy\ContainerPanel
        - IncludePanel
        - XDebugHelper('myIdeKey')
        - MyPanel(@MyService)

    # přidá panely do BlueScreen
    blueScreen:
        - DoctrinePanel::renderException

I mě samotného překvapilo, kolik částí se dá konfigurovat. Například browser je dost magická volba, použije se tehdy, když spouštíte script z CLI a zaloguje se laděnka. Tehdy Tracy zjistí, jestli je browser nastavený a připadně vám přes exec zavolá tento kód. V praxi se vám otevře prohlížeč s právě vyhozenou výjimkou.

Currently working

I am currently digging deeper to serverless stuf. Also trying to do my best around Nette [contributte.org & componette.org]. Taking care of 242 libraries across various Github organizations.