Конфігурація Трейсі

Наступні приклади припускають, що визначено такий псевдонім класу:

use Tracy\Debugger;

Протоколювання помилок

$logger = Debugger::getLogger();

// якщо сталася помилка, то повідомлення надсилається на цей email
$logger->email = 'dev@example.com'; // (string|string[]) за замовчуванням unset

// відправник електронної пошти
$logger->fromEmail = 'me@example.com'; // (string) defaults to unset

// процедура надсилання електронної пошти
$logger->mailer = /* ... */; // (викликається) за замовчуванням відправлення поштою mail()

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

// для яких рівнів помилок BlueScreen також ведеться журнал?
Debugger::$logSeverity = E_WARNING | E_NOTICE; // за замовчуванням 0 (рівень помилок відсутній)

dump() Поведінка

// максимальна довжина рядка
Debugger::$maxLength = 150; // (int) за замовчуванням згідно з Трейсі

// наскільки глибоким буде список
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

Інші

// у режимі розробки ви будете бачити сповіщення або попередження про помилки як 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 = /* ... ... */; // (рядок) за замовчуванням не задано

// показувати панель трейсів?
Debugger::$showBar = /* ... */; // (bool) за замовчуванням true

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

Nette Framework

Якщо ви використовуєте Nette Framework, ви також можете налаштувати Tracy і додати нові панелі на панель Tracy Bar за допомогою файлу конфігурації. У конфігурації можна задати параметри Tracy, а також додати нові панелі на панель Tracy. Ці параметри застосовуються тільки після створення контейнера DI, тому помилки, що виникли раніше, не можуть їх відобразити.

Конфігурація реєстрації помилок:

tracy:
	# якщо сталася помилка, повідомлення надсилається на цей email
	email: dev@example.com           # (string|string[]) за замовчуванням unset

	# відправник електронної пошти
	fromEmail: robot@example.com     # (string) за замовчуванням unset

	# період відстрочки надсилання листів (починаючи з версії Tracy 2.8.8)
	emailSnooze: ...                 # (рядок) за замовчуванням '2 дні'

	# використовувати поштовик, визначений у конфігурації? (починаючи з 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:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# додаємо панелі до BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Інші варіанти:

tracy:
	# у режимі розробки ви побачите сповіщення або попередження про помилки як BlueScreen
	strictMode: ...           # за замовчуванням true

	# відображає беззвучні (@) повідомлення про помилки
	scream: ...               # за замовчуванням false

	# формат посилання для відкриття в редакторі
	editor: ...               # (рядок) за замовчуванням 'editor://open/?file=%file&line=%line'

	# шлях до шаблону з користувацькою сторінкою для помилки 500
	errorTemplate: ...        # (рядок) за замовчуванням unset

	# показує панель трейсингу?
	showBar: ...              # (bool) за замовчуванням true

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

Значення опцій logSeverity, strictMode і scream можуть бути записані у вигляді масиву рівнів помилок (наприклад. [E_WARNING, E_NOTICE]) або як вираз, що використовується в PHP (наприклад, E_ALL & ~E_NOTICE).

Послуги з проведення розслідувань

Ці сервіси додаються до контейнера DI:

Назва Тип Опис
tracy.logger Tracy\ILogger логгер
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Tracy Bar