Configuración de Tracy

Los siguientes ejemplos dan por hecho que está definido este alias de clase:

use Tracy\Debugger;

Registro de errores

$logger = Debugger::getLogger();

// correo(s) a los que enviar las notificaciones de error
$logger->email = 'dev@example.com';      // (string|string[]) sin establecer de forma predeterminada

// remitente del correo
$logger->fromEmail = 'me@example.com';   // (string) sin establecer de forma predeterminada

// rutina para enviar el correo
$logger->mailer = /* ... */;             // (callable) de forma predeterminada, el envío con mail()

// intervalo mínimo para enviar los siguientes correos
$logger->emailSnooze = /* ... */;        // (string) el valor predeterminado es '2 days'

// ¿para qué niveles de error se registra también la BlueScreen?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // el valor predeterminado es 0 (ningún nivel de error)

Comportamiento de dump()

// longitud máxima de las cadenas
Debugger::$maxLength = 150;              // (int) el valor predeterminado depende de la versión de Tracy

// profundidad máxima de anidamiento
Debugger::$maxDepth = 10;                // (int) el valor predeterminado depende de la versión de Tracy

// número máximo de elementos de array u objeto que se muestran
Debugger::$maxItems = 100;               // (int) el valor predeterminado depende de la versión de Tracy

// oculta los valores de estas claves (desde Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) el valor predeterminado es []

// tema visual (desde Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) el valor predeterminado es 'light'

// ¿mostrar el lugar desde el que se llamó a dump()?
Debugger::$showLocation = /* ... */;     // (bool) el valor predeterminado depende de la versión de Tracy

Otros

// en modo de desarrollo, muestra los errores de tipo notice o warning como BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) el valor predeterminado es false; se pueden elegir niveles de error concretos (p. ej. E_USER_DEPRECATED | E_DEPRECATED)

// ¿mostrar los mensajes de error silenciados (@)?
Debugger::$scream = /* ... */;           // (bool|int) el valor predeterminado es false; desde la versión 2.9 se pueden elegir niveles de error concretos (p. ej. E_USER_DEPRECATED | E_DEPRECATED)

// formato del enlace para abrir en el editor
Debugger::$editor = /* ... */;           // (string|null) el valor predeterminado es 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

// ruta a la plantilla con la página propia para el error 500
Debugger::$errorTemplate = /* ... */;    // (string) sin establecer de forma predeterminada

// ¿mostrar la Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) el valor predeterminado es true

// comando para abrir el navegador con la BlueScreen registrada (p. ej. en la CLI)
Debugger::$browser = /* ... */;          // (string) sin establecer de forma predeterminada

// array de funciones que se llaman tras un error fatal o una excepción no capturada
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };

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

Nette Framework

Si usa Nette Framework, puede configurar Tracy y añadir nuevos paneles a la Tracy Bar desde el archivo de configuración. En la configuración puede establecer parámetros y añadir nuevos paneles a la Tracy Bar. Estos ajustes se aplican solo después de crear el contenedor DI, así que los errores que ocurran antes no pueden reflejarlos.

Configuración del registro de errores:

tracy:
	# correo(s) a los que enviar las notificaciones de error
	email: dev@example.com           # (string|string[]) sin establecer de forma predeterminada

	# remitente del correo
	fromEmail: robot@example.com     # (string) sin establecer de forma predeterminada

	# tiempo de espera entre envíos de correo (desde Tracy 2.8.8)
	emailSnooze: ...                 # (string) el valor predeterminado es '2 days'

	# ¿usar el mailer de Nette para enviar los correos? (desde Tracy 2.5)
	netteMailer: ...                 # (bool) el valor predeterminado es true

	# ¿para qué niveles de error se registra también la BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # el valor predeterminado es 0

Configuración de la función dump():

tracy:
	# longitud máxima de las cadenas
	maxLength: 150                # (int) el valor predeterminado depende de la versión de Tracy

	# profundidad máxima de anidamiento
	maxDepth: 10                  # (int) el valor predeterminado depende de la versión de Tracy

	# número máximo de elementos de array u objeto que se muestran
	maxItems: 100                 # (int) el valor predeterminado depende de la versión de Tracy

	# oculta los valores de estas claves (desde Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) el valor predeterminado es []

	# tema visual (desde Tracy 2.8)
	dumpTheme: dark               # (light|dark) el valor predeterminado es 'light'

	# ¿mostrar el lugar desde el que se llamó a dump()?
	showLocation: ...             # (bool) el valor predeterminado depende de la versión de Tracy

Instalación de extensiones de Tracy:

tracy:
	# añade paneles a la Tracy Bar
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# añade paneles a la BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Otras opciones:

tracy:
	# en modo de desarrollo, muestra los errores de tipo notice o warning como BlueScreen
	strictMode: ...           # el valor predeterminado es false

	# ¿mostrar los mensajes de error silenciados (@)?
	scream: ...               # el valor predeterminado es false

	# formato del enlace para abrir en el editor
	editor: ...               # (string) el valor predeterminado es 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

	# ruta a la plantilla con la página propia para el error 500
	errorTemplate: ...        # (string) sin establecer de forma predeterminada

	# ¿mostrar la Tracy Bar?
	showBar: ...              # (bool) el valor predeterminado es true

	# comando para abrir el navegador con la BlueScreen registrada (p. ej. en la CLI)
	browser: ...             # (string) sin establecer de forma predeterminada

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

Los valores de las opciones logSeverity, strictMode y scream se pueden escribir como array de niveles de error (p. ej. [E_WARNING, E_NOTICE]) o como una expresión de las que se usan en PHP (p. ej. E_ALL & ~E_NOTICE).

Servicios DI

Estos servicios se añaden al contenedor DI:

Nombre Tipo Descripción
tracy.logger Tracy\ILogger logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar