Tracy integrace do Nette 14/01/2018

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.