Configuration de Tracy

Les exemples suivants supposent que l'alias de classe suivant est défini :

use Tracy\Debugger;

Journalisation des erreurs

$logger = Debugger::getLogger();

// e-mail(s) auxquels envoyer les notifications d'erreur
$logger->email = 'dev@example.com';      // (string|string[]) non défini par défaut

// expéditeur de l'e-mail
$logger->fromEmail = 'me@example.com';   // (string) non défini par défaut

// routine d'envoi des e-mails
$logger->mailer = /* ... */;             // (callable) par défaut, envoi par mail()

// intervalle minimal avant l'envoi d'autres e-mails ?
$logger->emailSnooze = /* ... */;        // (string) '2 days' par défaut

// pour quels niveaux d'erreur le BlueScreen est-il aussi journalisé ?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // 0 par défaut (aucun niveau d'erreur)

Comportement de dump()

// longueur maximale des chaînes
Debugger::$maxLength = 150;              // (int) par défaut selon la version de Tracy

// profondeur d'imbrication maximale
Debugger::$maxDepth = 10;                // (int) par défaut selon la version de Tracy

// nombre maximal d'éléments de tableau/objet affichés
Debugger::$maxItems = 100;               // (int) par défaut selon la version de Tracy

// masquer les valeurs de ces clés (depuis Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) [] par défaut

// thème visuel (depuis Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) 'light' par défaut

// afficher l'endroit d'où dump() a été appelée ?
Debugger::$showLocation = /* ... */;     // (bool) par défaut selon la version de Tracy

Autres

// en mode développement, afficher les erreurs de type notice ou warning en BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) false par défaut, des niveaux d'erreur précis peuvent être choisis (par ex. E_USER_DEPRECATED | E_DEPRECATED)

// afficher les messages d'erreur silencieux (@) ?
Debugger::$scream = /* ... */;           // (bool|int) false par défaut, depuis la version 2.9 des niveaux d'erreur précis peuvent être choisis (par ex. E_USER_DEPRECATED | E_DEPRECATED)

// format du lien d'ouverture dans l'éditeur
Debugger::$editor = /* ... */;           // (string|null) 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace' par défaut

// chemin du template de la page personnalisée pour l'erreur 500
Debugger::$errorTemplate = /* ... */;    // (string) non défini par défaut

// afficher la Tracy Bar ?
Debugger::$showBar = /* ... */;          // (bool) true par défaut

// commande d'ouverture du navigateur avec le BlueScreen journalisé (par exemple en CLI)
Debugger::$browser = /* ... */;          // (string) non défini par défaut

// tableau de fonctions appelées après une erreur fatale ou une exception non attrapée
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };

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

Nette Framework

Si vous utilisez Nette Framework, vous pouvez configurer Tracy et ajouter de nouveaux panneaux à la Tracy Bar via le fichier de configuration. Vous pouvez y définir des paramètres et ajouter de nouveaux panneaux à la Tracy Bar. Ces réglages ne s'appliquent qu'après la création du conteneur DI, les erreurs survenant avant ne peuvent donc pas en tenir compte.

Configuration de la journalisation des erreurs :

tracy:
	# e-mail(s) auxquels envoyer les notifications d'erreur
	email: dev@example.com           # (string|string[]) non défini par défaut

	# expéditeur de l'e-mail
	fromEmail: robot@example.com     # (string) non défini par défaut

	# délai d'attente avant un nouvel envoi d'e-mail (depuis Tracy 2.8.8)
	emailSnooze: ...                 # (string) '2 days' par défaut

	# utiliser le mailer de Nette pour envoyer les e-mails ? (depuis Tracy 2.5)
	netteMailer: ...                 # (bool) true par défaut

	# pour quels niveaux d'erreur le BlueScreen est-il aussi journalisé ?
	logSeverity: [E_WARNING, E_NOTICE]  # 0 par défaut

Configuration de la fonction dump() :

tracy:
	# longueur maximale des chaînes
	maxLength: 150                # (int) par défaut selon la version de Tracy

	# profondeur d'imbrication maximale
	maxDepth: 10                  # (int) par défaut selon la version de Tracy

	# nombre maximal d'éléments de tableau/objet affichés
	maxItems: 100                 # (int) par défaut selon la version de Tracy

	# masquer les valeurs de ces clés (depuis Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) [] par défaut

	# thème visuel (depuis Tracy 2.8)
	dumpTheme: dark               # (light|dark) 'light' par défaut

	# afficher l'endroit d'où dump() a été appelée ?
	showLocation: ...             # (bool) par défaut selon la version de Tracy

Installation d'extensions de Tracy :

tracy:
	# ajoute des panneaux à la Tracy Bar
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# ajoute des panneaux au BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Autres options :

tracy:
	# en mode développement, afficher les erreurs de type notice ou warning en BlueScreen
	strictMode: ...           # false par défaut

	# afficher les messages d'erreur silencieux (@) ?
	scream: ...               # false par défaut

	# format du lien d'ouverture dans l'éditeur
	editor: ...               # (string) 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace' par défaut

	# chemin du template de la page personnalisée pour l'erreur 500
	errorTemplate: ...        # (string) non défini par défaut

	# afficher la Tracy Bar ?
	showBar: ...              # (bool) true par défaut

	# commande d'ouverture du navigateur avec le BlueScreen journalisé (par exemple en CLI)
	browser: ...             # (string) non défini par défaut

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

Les valeurs des options logSeverity, strictMode et scream peuvent s'écrire sous forme de tableau de niveaux d'erreur (par exemple [E_WARNING, E_NOTICE]) ou d'expression telle qu'utilisée en PHP (par exemple E_ALL & ~E_NOTICE).

Services DI

Ces services sont ajoutés au conteneur DI :

Nom Type Description
tracy.logger Tracy\ILogger logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar