Конфигурация на Tracy

Всички примери предполагат създаден псевдоним (alias):

use Tracy\Debugger;

Логване на грешки

$logger = Debugger::getLogger();

// имейл, на който се изпращат известия, че е възникнала грешка
$logger->email = 'dev@example.com';      // (string|string[]) по подразбиране не е зададено

// изпращач на имейла
$logger->fromEmail = 'me@example.com';   // (string) по подразбиране не е зададено

// рутина, осигуряваща изпращането на имейл
$logger->mailer = /* ... */;             // (callable) по подразбиране е изпращане чрез функцията mail()

// след колко най-кратко време да се изпрати следващият имейл?
$logger->emailSnooze = /* ... */;        // (string) по подразбиране е '2 days'

// за кои нива на грешки се логва и BlueScreen?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // по подразбиране е 0 (никакви нива на грешки)

Поведение на dump()

// максимална дължина на низа
Debugger::$maxLength = 150;              // (int) по подразбиране според версията на Tracy

// максимална дълбочина на влагане
Debugger::$maxDepth = 10;                // (int) по подразбиране според версията на Tracy

// скриване на стойностите на тези ключове (от Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) по подразбиране е []

// визуална тема (от Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) по подразбиране е 'light'

// показване на мястото, където е извикана функцията dump()?
Debugger::$showLocation = /* ... */;     // (bool) по подразбиране според версията на Tracy

Други

// в режим на разработка показва грешки от тип notice или warning като BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) по подразбиране е false, възможно е да се изберат само някои нива на грешки (напр. E_USER_DEPRECATED | E_DEPRECATED)

// показване на заглушени (@) съобщения за грешки?
Debugger::$scream = /* ... */;           // (bool|int) по подразбиране е false, от версия 2.9 е възможно да се изберат само някои нива на грешки (напр. E_USER_DEPRECATED | E_DEPRECATED)

// формат на връзката за отваряне в редактор
Debugger::$editor = /* ... */;           // (string|null) по подразбиране е 'editor://open/?file=%file&line=%line'

// път до шаблон със собствена страница за грешка 500
Debugger::$errorTemplate = /* ... */;    // (string) по подразбиране не е зададено

// показване на Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) по подразбиране е true

Debugger::$editorMapping = [
	// оригинал => нов
	'/var/www/html' => '/data/web',
	'/home/web' => '/srv/html',
];

Nette Framework

Ако използвате Nette Framework, можете да конфигурирате Tracy и да добавяте нови панели към Tracy Bar също чрез конфигурационния файл. В конфигурацията могат да се задават параметри, както и да се добавят нови панели към Tracy Bar. Тези настройки се прилагат едва след създаването на DI контейнера, така че грешките, възникнали преди това, не могат да ги отразят.

Конфигурация на логването на грешки:

tracy:
	# имейл, на който се изпращат известия, че е възникнала грешка
	email: dev@example.com           # (string|string[]) по подразбиране не е зададено

	# изпращач на имейла
	fromEmail: robot@example.com     # (string) по подразбиране не е зададено

	# време за отлагане на изпращането на имейли (от Tracy 2.8.8)
	emailSnooze: ...                 # (string) по подразбиране е '2 days'

	# използване на Nette mailer за изпращане на имейли? (от Tracy 2.5)
	netteMailer: ...                 # (bool) по подразбиране е true

	# за кои нива на грешки се логва и BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # по подразбиране е []

Конфигурация на поведението на функцията dump():

tracy:
	# максимална дължина на низа
	maxLength: 150                # (int) по подразбиране според версията на Tracy

	# максимална дълбочина на влагане
	maxDepth: 10                  # (int) по подразбиране според версията на Tracy

	# скриване на стойностите на тези ключове (от Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) по подразбиране е []

	# визуална тема (от Tracy 2.8)
	dumpTheme: dark               # (light|dark) по подразбиране е 'light'

	# показване на мястото, където е извикана функцията dump()?
	showLocation: ...             # (bool) по подразбиране според версията на Tracy

Инсталиране на разширения за Tracy:

tracy:
	# добавя панели към Tracy Bar
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# добавя панели към BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Други опции:

tracy:
	# в режим на разработка показва грешки от тип notice или warning като BlueScreen
	strictMode: ...           # по подразбиране е true

	# показване на заглушени (@) съобщения за грешки?
	scream: ...               # по подразбиране е false

	# формат на връзката за отваряне в редактор
	editor: ...               # (string) по подразбиране е 'editor://open/?file=%file&line=%line'

	# път до шаблон със собствена страница за грешка 500
	errorTemplate: ...        # (string) по подразбиране не е зададено

	# показване на Tracy Bar?
	showBar: ...              # (bool) по подразбиране е true

	editorMapping:
		# оригинал: нов
		/var/www/html: /data/web
		/home/web: /srv/html

Стойностите на опциите logSeverity, strictMode и scream могат да се записват като масив от нива на грешки (напр. [E_WARNING, E_NOTICE]) или като израз, използван в езика PHP (напр. E_ALL & ~E_NOTICE).

DI Сървиси

Тези сървиси се добавят към DI контейнера:

Име Тип Описание
tracy.logger Tracy\ILogger логър
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar