Konfiguracija Tracy

Vsi primeri predpostavljajo ustvarjen alias:

use Tracy\Debugger;

Dnevniško beleženje napak

$logger = Debugger::getLogger();

// e-pošta, na katero se pošiljajo obvestila o napakah
$logger->email = 'dev@example.com';      // (string|string[]) privzeto ni nastavljeno

// pošiljatelj e-pošte
$logger->fromEmail = 'me@example.com';   // (string) privzeto ni nastavljeno

// rutina, ki zagotavlja pošiljanje e-pošte
$logger->mailer = /* ... */;             // (callable) privzeto je pošiljanje s funkcijo mail()

// po kakšnem najkrajšem času poslati naslednjo e-pošto?
$logger->emailSnooze = /* ... */;        // (string) privzeto je '2 days'

// za katere ravni napak se beleži tudi BlueScreen?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // privzeto je 0 (nobena raven napak)

Obnašanje dump()

// največja dolžina niza
Debugger::$maxLength = 150;              // (int) privzeto glede na različico Tracy

// največja globina gnezdenja
Debugger::$maxDepth = 10;                // (int) privzeto glede na različico Tracy

// skrij vrednosti teh ključev (od Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) privzeto je []

// vizualna tema (od Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) privzeto je 'light'

// prikaži mesto, kjer je bila klicana funkcija dump()?
Debugger::$showLocation = /* ... */;     // (bool) privzeto glede na različico Tracy

Ostalo

// v razvojnem načinu prikaže napake tipa notice ali warning kot BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) privzeto je false, možno je izbrati le nekatere ravni napak (npr. E_USER_DEPRECATED | E_DEPRECATED)

// prikaži utišana (@) sporočila o napakah?
Debugger::$scream = /* ... */;           // (bool|int) privzeto je false, od različice 2.9 je možno izbrati le nekatere ravni napak (npr. E_USER_DEPRECATED | E_DEPRECATED)

// format povezave za odpiranje v urejevalniku
Debugger::$editor = /* ... */;           // (string|null) privzeto je 'editor://open/?file=%file&line=%line'

// pot do predloge z lastno stranjo za napako 500
Debugger::$errorTemplate = /* ... */;    // (string) privzeto ni nastavljeno

// prikaži Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) privzeto je true

Debugger::$editorMapping = [
	// original => nova
	'/var/www/html' => '/data/web',
	'/home/web' => '/srv/html',
];

Nette Framework

Če uporabljate Nette Framework, lahko konfigurirate Tracy in dodajate nove panele v Tracy Bar tudi s pomočjo konfiguracijske datoteke. V konfiguraciji lahko nastavljate parametre in dodajate nove panele v Tracy Bar. Te nastavitve se uporabijo šele po ustvarjanju DI vsebnika, zato napake, ki nastanejo pred tem, jih ne morejo odražati.

Konfiguracija dnevniškega beleženja napak:

tracy:
	# e-pošta, na katero se pošiljajo obvestila o napakah
	email: dev@example.com           # (string|string[]) privzeto ni nastavljeno

	# pošiljatelj e-pošte
	fromEmail: robot@example.com     # (string) privzeto ni nastavljeno

	# čas zakasnitve pošiljanja e-pošte (od Tracy 2.8.8)
	emailSnooze: ...                 # (string) privzeto je '2 days'

	# uporabiti Nette mailer za pošiljanje e-pošte? (od Tracy 2.5)
	netteMailer: ...                 # (bool) privzeto je true

	# za katere ravni napak se beleži tudi BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # privzeto je []

Konfiguracija obnašanja funkcije dump():

tracy:
	# največja dolžina niza
	maxLength: 150                # (int) privzeto glede na različico Tracy

	# največja globina gnezdenja
	maxDepth: 10                  # (int) privzeto glede na različico Tracy

	# skrij vrednosti teh ključev (od Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) privzeto je []

	# vizualna tema (od Tracy 2.8)
	dumpTheme: dark               # (light|dark) privzeto je 'light'

	# prikaži mesto, kjer je bila klicana funkcija dump()?
	showLocation: ...             # (bool) privzeto glede na različico Tracy

Namestitev razširitev Tracy:

tracy:
	# doda panele v Tracy Bar
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# doda panele v BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Druge možnosti:

tracy:
	# v razvojnem načinu prikaže napake tipa notice ali warning kot BlueScreen
	strictMode: ...           # privzeto je true

	# prikaži utišana (@) sporočila o napakah?
	scream: ...               # privzeto je false

	# format povezave za odpiranje v urejevalniku
	editor: ...               # (string) privzeto je 'editor://open/?file=%file&line=%line'

	# pot do predloge z lastno stranjo za napako 500
	errorTemplate: ...        # (string) privzeto ni nastavljeno

	# prikaži Tracy Bar?
	showBar: ...              # (bool) privzeto je true

	editorMapping:
		# original: nova
		/var/www/html: /data/web
		/home/web: /srv/html

Vrednosti možnosti logSeverity, strictMode in scream lahko zapišete kot polje ravni napak (npr. [E_WARNING, E_NOTICE]) ali kot izraz, uporabljen v jeziku PHP (npr. E_ALL & ~E_NOTICE).

Storitve DI

Te storitve se dodajo v DI vsebnik:

Ime Tip Opis
tracy.logger Tracy\ILogger logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar