Nette Documentation Preview

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

В следующих примерах предполагается, что определён такой псевдоним класса:

```php
use Tracy\Debugger;
```


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

```php
$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()`
------------------

```php
// максимальная длина строки
Debugger::$maxLength = 150;              // (int) по умолчанию согласно версии Tracy

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

// максимальное количество показываемых элементов массива или объекта
Debugger::$maxItems = 100;               // (int) по умолчанию согласно версии Tracy

// скрывать значения этих ключей (начиная с Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) по умолчанию []

// визуальная тема (начиная с Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) по умолчанию 'light'

// показывать место, откуда был вызван dump()?
Debugger::$showLocation = /* ... */;     // (bool) по умолчанию согласно версии Tracy
```


Прочее
------

```php
// в режиме разработки показывать ошибки уровня 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://%action/?file=%file&line=%line&search=%search&replace=%replace'

// путь к шаблону с собственной страницей ошибки 500
Debugger::$errorTemplate = /* ... */;    // (string) по умолчанию не задано

// показывать Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) по умолчанию true

// команда открытия браузера с записанным в лог BlueScreen (например, в CLI)
Debugger::$browser = /* ... */;          // (string) по умолчанию не задано

// массив функций, вызываемых после фатальной ошибки или неперехваченного исключения
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };

Debugger::$editorMapping = [
	// исходный => новый
	'/var/www/html' => '/data/web',
	'/home/web' => '/srv/html',
];
```


Nette Framework
---------------

Если вы используете Nette Framework, настраивать Tracy и добавлять новые панели в Tracy Bar можно через конфигурационный файл. В конфигурации можно задать параметры и добавить новые панели в Tracy Bar. Эти настройки применяются только после создания DI-контейнера, поэтому ошибки, возникшие раньше, их учесть не могут.

Настройка логирования ошибок:

```neon
tracy:
	# адрес или адреса, на которые отправлять уведомления об ошибках
	email: dev@example.com           # (string|string[]) по умолчанию не задано

	# отправитель письма
	fromEmail: robot@example.com     # (string) по умолчанию не задано

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

	# использовать для отправки писем mailer из Nette? (начиная с Tracy 2.5)
	netteMailer: ...                 # (bool) по умолчанию true

	# для каких уровней ошибок логируется ещё и BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # по умолчанию 0
```

Настройка функции `dump()`:

```neon
tracy:
	# максимальная длина строки
	maxLength: 150                # (int) по умолчанию согласно версии Tracy

	# максимальная глубина вложенности
	maxDepth: 10                  # (int) по умолчанию согласно версии Tracy

	# максимальное количество показываемых элементов массива или объекта
	maxItems: 100                 # (int) по умолчанию согласно версии Tracy

	# скрывать значения этих ключей (начиная с Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) по умолчанию []

	# визуальная тема (начиная с Tracy 2.8)
	dumpTheme: dark               # (light|dark) по умолчанию 'light'

	# показывать место, откуда был вызван dump()?
	showLocation: ...             # (bool) по умолчанию согласно версии Tracy
```

Установка расширений Tracy:

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

	# добавляет панели в BlueScreen
	blueScreen:
		- DoctrinePanel::renderException
```

Прочие параметры:

```neon
tracy:
	# в режиме разработки показывать ошибки уровня notice или warning как BlueScreen
	strictMode: ...           # по умолчанию false

	# показывать подавленные (@) сообщения об ошибках?
	scream: ...               # по умолчанию false

	# формат ссылки для открытия в редакторе
	editor: ...               # (string) по умолчанию 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

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

	# показывать Tracy Bar?
	showBar: ...              # (bool) по умолчанию true

	# команда открытия браузера с записанным в лог BlueScreen (например, в CLI)
	browser: ...             # (string) по умолчанию не задано

	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`   | [api:Tracy\ILogger]    | логгер
| `tracy.blueScreen` | [api:Tracy\BlueScreen] | BlueScreen
| `tracy.bar`      | [api:Tracy\Bar]        | Tracy Bar

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

В следующих примерах предполагается, что определён такой псевдоним класса:

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

// максимальное количество показываемых элементов массива или объекта
Debugger::$maxItems = 100;               // (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://%action/?file=%file&line=%line&search=%search&replace=%replace'

// путь к шаблону с собственной страницей ошибки 500
Debugger::$errorTemplate = /* ... */;    // (string) по умолчанию не задано

// показывать Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) по умолчанию true

// команда открытия браузера с записанным в лог BlueScreen (например, в CLI)
Debugger::$browser = /* ... */;          // (string) по умолчанию не задано

// массив функций, вызываемых после фатальной ошибки или неперехваченного исключения
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };

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'

	# использовать для отправки писем mailer из Nette? (начиная с Tracy 2.5)
	netteMailer: ...                 # (bool) по умолчанию true

	# для каких уровней ошибок логируется ещё и BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # по умолчанию 0

Настройка функции dump():

tracy:
	# максимальная длина строки
	maxLength: 150                # (int) по умолчанию согласно версии Tracy

	# максимальная глубина вложенности
	maxDepth: 10                  # (int) по умолчанию согласно версии Tracy

	# максимальное количество показываемых элементов массива или объекта
	maxItems: 100                 # (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: ...           # по умолчанию false

	# показывать подавленные (@) сообщения об ошибках?
	scream: ...               # по умолчанию false

	# формат ссылки для открытия в редакторе
	editor: ...               # (string) по умолчанию 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

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

	# показывать Tracy Bar?
	showBar: ...              # (bool) по умолчанию true

	# команда открытия браузера с записанным в лог BlueScreen (например, в CLI)
	browser: ...             # (string) по умолчанию не задано

	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