Configurarea Tracy

Toate exemplele presupun crearea unui alias:

use Tracy\Debugger;

Logarea erorilor

$logger = Debugger::getLogger();

// e-mailul la care se trimit notificările în caz de eroare
$logger->email = 'dev@example.com';      // (string|string[]) implicit este nesetat

// expeditorul e-mailului
$logger->fromEmail = 'me@example.com';   // (string) implicit este nesetat

// rutina care asigură trimiterea e-mailului
$logger->mailer = /* ... */;             // (callable) implicit este trimiterea prin funcția mail()

// după ce interval minim de timp se trimite următorul e-mail?
$logger->emailSnooze = /* ... */;        // (string) implicit este '2 days'

// pentru ce niveluri de eroare se loghează și BlueScreen?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // implicit este 0 (niciun nivel de eroare)

Comportamentul dump()

// lungimea maximă a șirului
Debugger::$maxLength = 150;              // (int) implicit depinde de versiunea Tracy

// adâncimea maximă de imbricare
Debugger::$maxDepth = 10;                // (int) implicit depinde de versiunea Tracy

// ascunde valorile acestor chei (începând cu Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) implicit este []

// tema vizuală (începând cu Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) implicit este 'light'

// afișează locul unde a fost apelată funcția dump()?
Debugger::$showLocation = /* ... */;     // (bool) implicit depinde de versiunea Tracy

Altele

// în modul de dezvoltare, afișează erorile de tip notice sau warning ca BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) implicit este false, este posibil să selectați doar anumite niveluri de eroare (de ex. E_USER_DEPRECATED | E_DEPRECATED)

// afișează mesajele de eroare suprimate (@)?
Debugger::$scream = /* ... */;           // (bool|int) implicit este false, începând cu versiunea 2.9 este posibil să selectați doar anumite niveluri de eroare (de ex. E_USER_DEPRECATED | E_DEPRECATED)

// formatul linkului pentru deschiderea în editor
Debugger::$editor = /* ... */;           // (string|null) implicit este 'editor://open/?file=%file&line=%line'

// calea către șablonul cu pagina personalizată pentru eroarea 500
Debugger::$errorTemplate = /* ... */;    // (string) implicit este nesetat

// afișează Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) implicit este true

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

Nette Framework

Dacă utilizați Nette Framework, puteți configura Tracy și adăuga noi panouri în Tracy Bar și prin intermediul fișierului de configurare. În configurație se pot seta parametrii și, de asemenea, se pot adăuga noi panouri în Tracy Bar. Aceste setări se aplică numai după crearea containerului DI, astfel încât erorile apărute înainte nu le pot reflecta.

Configurarea logării erorilor:

tracy:
	# e-mailul la care se trimit notificările în caz de eroare
	email: dev@example.com           # (string|string[]) implicit este nesetat

	# expeditorul e-mailului
	fromEmail: robot@example.com     # (string) implicit este nesetat

	# perioada de amânare a trimiterii e-mailurilor (începând cu Tracy 2.8.8)
	emailSnooze: ...                 # (string) implicit este '2 days'

	# folosește Nette mailer pentru trimiterea e-mailurilor? (începând cu Tracy 2.5)
	netteMailer: ...                 # (bool) implicit este true

	# pentru ce niveluri de eroare se loghează și BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # implicit este []

Configurarea comportamentului funcției dump():

tracy:
	# lungimea maximă a șirului
	maxLength: 150                # (int) implicit depinde de versiunea Tracy

	# adâncimea maximă de imbricare
	maxDepth: 10                  # (int) implicit depinde de versiunea Tracy

	# ascunde valorile acestor chei (începând cu Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) implicit este []

	# tema vizuală (începând cu Tracy 2.8)
	dumpTheme: dark               # (light|dark) implicit este 'light'

	# afișează locul unde a fost apelată funcția dump()?
	showLocation: ...             # (bool) implicit depinde de versiunea Tracy

Instalarea extensiilor Tracy:

tracy:
	# adaugă panouri în Tracy Bar
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# adaugă panouri în BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Alte opțiuni:

tracy:
	# în modul de dezvoltare, afișează erorile de tip notice sau warning ca BlueScreen
	strictMode: ...           # implicit este true

	# afișează mesajele de eroare suprimate (@)?
	scream: ...               # implicit este false

	# formatul linkului pentru deschiderea în editor
	editor: ...               # (string) implicit este 'editor://open/?file=%file&line=%line'

	# calea către șablonul cu pagina personalizată pentru eroarea 500
	errorTemplate: ...        # (string) implicit este nesetat

	# afișează Tracy Bar?
	showBar: ...              # (bool) implicit este true

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

Valorile opțiunilor logSeverity, strictMode și scream pot fi scrise ca un array de niveluri de eroare (de ex. [E_WARNING, E_NOTICE]) sau ca o expresie utilizată în limbajul PHP (de ex. E_ALL & ~E_NOTICE).

Servicii DI

Aceste servicii sunt adăugate în containerul DI:

Nume Tip Descriere
tracy.logger Tracy\ILogger logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar