Configurazione di Tracy

Gli esempi seguenti presuppongono che sia definito questo alias di classe:

use Tracy\Debugger;

Logging degli errori

$logger = Debugger::getLogger();

// email a cui inviare le notifiche di errore
$logger->email = 'dev@example.com';      // (string|string[]) predefinito non impostato

// mittente delle email
$logger->fromEmail = 'me@example.com';   // (string) predefinito non impostato

// routine per l'invio delle email
$logger->mailer = /* ... */;             // (callable) per impostazione predefinita invia con mail()

// intervallo minimo per l'invio delle email successive?
$logger->emailSnooze = /* ... */;        // (string) predefinito '2 days'

// per quali livelli di errore viene registrata anche la BlueScreen?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // predefinito 0 (nessun livello di errore)

Comportamento di dump()

// lunghezza massima delle stringhe
Debugger::$maxLength = 150;              // (int) predefinito secondo la versione di Tracy

// profondità massima di annidamento
Debugger::$maxDepth = 10;                // (int) predefinito secondo la versione di Tracy

// numero massimo di elementi di array/oggetti mostrati
Debugger::$maxItems = 100;               // (int) predefinito secondo la versione di Tracy

// nasconde i valori di queste chiavi (da Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) predefinito []

// tema visivo (da Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) predefinito 'light'

// mostrare il punto in cui è stato chiamato dump()?
Debugger::$showLocation = /* ... */;     // (bool) predefinito secondo la versione di Tracy

Altro

// in modalità di sviluppo mostra gli errori di tipo notice o warning come BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) predefinito false, si possono scegliere livelli di errore specifici (per esempio E_USER_DEPRECATED | E_DEPRECATED)

// mostrare i messaggi di errore silenziati (@)?
Debugger::$scream = /* ... */;           // (bool|int) predefinito false, dalla versione 2.9 si possono scegliere livelli di errore specifici (per esempio E_USER_DEPRECATED | E_DEPRECATED)

// formato del link per aprire nell'editor
Debugger::$editor = /* ... */;           // (string|null) predefinito 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

// percorso del template con la pagina personalizzata per l'errore 500
Debugger::$errorTemplate = /* ... */;    // (string) predefinito non impostato

// mostrare la Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) predefinito true

// comando per aprire il browser con la BlueScreen registrata (per esempio in CLI)
Debugger::$browser = /* ... */;          // (string) predefinito non impostato

// array di funzioni chiamate dopo un errore fatale o un'eccezione non catturata
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };

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

Nette Framework

Se usate il Nette Framework, potete configurare Tracy e aggiungere nuovi pannelli alla Tracy Bar tramite il file di configurazione. Nella configurazione potete impostare i parametri e aggiungere nuovi pannelli alla Tracy Bar. Queste impostazioni vengono applicate solo dopo la creazione del container DI, perciò gli errori che si verificano prima non possono tenerne conto.

Configurazione del logging degli errori:

tracy:
	# email a cui inviare le notifiche di errore
	email: dev@example.com           # (string|string[]) predefinito non impostato

	# mittente delle email
	fromEmail: robot@example.com     # (string) predefinito non impostato

	# tempo di attesa tra gli invii delle email (da Tracy 2.8.8)
	emailSnooze: ...                 # (string) predefinito '2 days'

	# usare il mailer di Nette per inviare le email? (da Tracy 2.5)
	netteMailer: ...                 # (bool) predefinito true

	# per quali livelli di errore viene registrata anche la BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # predefinito 0

Configurazione della funzione dump():

tracy:
	# lunghezza massima delle stringhe
	maxLength: 150                # (int) predefinito secondo la versione di Tracy

	# profondità massima di annidamento
	maxDepth: 10                  # (int) predefinito secondo la versione di Tracy

	# numero massimo di elementi di array/oggetti mostrati
	maxItems: 100                 # (int) predefinito secondo la versione di Tracy

	# nasconde i valori di queste chiavi (da Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) predefinito []

	# tema visivo (da Tracy 2.8)
	dumpTheme: dark               # (light|dark) predefinito 'light'

	# mostrare il punto in cui è stato chiamato dump()?
	showLocation: ...             # (bool) predefinito secondo la versione di Tracy

Installazione delle estensioni di Tracy:

tracy:
	# aggiunge pannelli alla Tracy Bar
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# aggiunge pannelli alla BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Altre opzioni:

tracy:
	# in modalità di sviluppo mostra gli errori di tipo notice o warning come BlueScreen
	strictMode: ...           # predefinito false

	# mostrare i messaggi di errore silenziati (@)?
	scream: ...               # predefinito false

	# formato del link per aprire nell'editor
	editor: ...               # (string) predefinito 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

	# percorso del template con la pagina personalizzata per l'errore 500
	errorTemplate: ...        # (string) predefinito non impostato

	# mostrare la Tracy Bar?
	showBar: ...              # (bool) predefinito true

	# comando per aprire il browser con la BlueScreen registrata (per esempio in CLI)
	browser: ...             # (string) predefinito non impostato

	editorMapping:
		# originale: nuovo
		/var/www/html: /data/web
		/home/web: /srv/html

I valori delle opzioni logSeverity, strictMode e scream si possono scrivere come array di livelli di errore (per esempio [E_WARNING, E_NOTICE]) oppure come espressione usata in PHP (per esempio E_ALL & ~E_NOTICE).

Servizi DI

Al container DI vengono aggiunti questi servizi:

Nome Tipo Descrizione
tracy.logger Tracy\ILogger logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar