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 |