Konfiguracja Tracy

Wszystkie przykłady zakładają utworzony alias:

use Tracy\Debugger;

Logowanie błędów

$logger = Debugger::getLogger();

// e-mail, na który wysyłane są powiadomienia o błędach
$logger->email = 'dev@example.com';      // (string|string[]) domyślnie nieustawione

// nadawca e-maila
$logger->fromEmail = 'me@example.com';   // (string) domyślnie nieustawione

// procedura zapewniająca wysłanie e-maila
$logger->mailer = /* ... */;             // (callable) domyślnie wysyłanie za pomocą funkcji mail()

// po jakim najkrótszym czasie wysłać następny e-mail?
$logger->emailSnooze = /* ... */;        // (string) domyślnie '2 days'

// dla jakich poziomów błędów logowany jest również BlueScreen?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // domyślnie 0 (brak poziomów błędów)

Zachowanie dump()

// maksymalna długość ciągu
Debugger::$maxLength = 150;              // (int) domyślnie zgodnie z wersją Tracy

// maksymalna głębokość zagnieżdżenia
Debugger::$maxDepth = 10;                // (int) domyślnie zgodnie z wersją Tracy

// ukryj wartości tych kluczy (od Tracy 2.8)
Debugger::$keysToHide = ['password', /* ... */];  // (string[]) domyślnie []

// motyw wizualny (od Tracy 2.8)
Debugger::$dumpTheme = 'dark';           // (light|dark) domyślnie 'light'

// wyświetlić miejsce, w którym została wywołana funkcja dump()?
Debugger::$showLocation = /* ... */;     // (bool) domyślnie zgodnie z wersją Tracy

Inne

// w trybie deweloperskim wyświetla błędy typu notice lub warning jako BlueScreen
Debugger::$strictMode = /* ... */;       // (bool|int) domyślnie false, można wybrać tylko niektóre poziomy błędów (np. E_USER_DEPRECATED | E_DEPRECATED)

// wyświetlać wyciszone (@) komunikaty błędów?
Debugger::$scream = /* ... */;           // (bool|int) domyślnie false, od wersji 2.9 można wybrać tylko niektóre poziomy błędów (np. E_USER_DEPRECATED | E_DEPRECATED)

// format linku do otwarcia w edytorze
Debugger::$editor = /* ... */;           // (string|null) domyślnie 'editor://open/?file=%file&line=%line'

// ścieżka do szablonu z własną stroną dla błędu 500
Debugger::$errorTemplate = /* ... */;    // (string) domyślnie nieustawione

// wyświetlać Pasek Tracy?
Debugger::$showBar = /* ... */;          // (bool) domyślnie true

Debugger::$editorMapping = [
	// oryginał => nowa
	'/var/www/html' => '/data/web',
	'/home/web' => '/srv/html',
];

Nette Framework

Jeśli używasz Nette Framework, możesz konfigurować Tracy i dodawać nowe panele do Paska Tracy również za pomocą pliku konfiguracyjnego. W konfiguracji można ustawiać parametry oraz dodawać nowe panele do Paska Tracy. Te ustawienia są stosowane dopiero po utworzeniu kontenera DI, więc błędy powstałe wcześniej nie mogą ich odzwierciedlać.

Konfiguracja logowania błędów:

tracy:
	# e-mail, na który wysyłane są powiadomienia o błędach
	email: dev@example.com           # (string|string[]) domyślnie nieustawione

	# nadawca e-maila
	fromEmail: robot@example.com     # (string) domyślnie nieustawione

	# czas odroczenia wysyłania e-maili (od Tracy 2.8.8)
	emailSnooze: ...                 # (string) domyślnie '2 days'

	# używać Nette mailer do wysyłania e-maili? (od Tracy 2.5)
	netteMailer: ...                 # (bool) domyślnie true

	# dla jakich poziomów błędów logowany jest również BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # domyślnie []

Konfiguracja zachowania funkcji dump():

tracy:
	# maksymalna długość ciągu
	maxLength: 150                # (int) domyślnie zgodnie z wersją Tracy

	# maksymalna głębokość zagnieżdżenia
	maxDepth: 10                  # (int) domyślnie zgodnie z wersją Tracy

	# ukryj wartości tych kluczy (od Tracy 2.8)
	keysToHide: [password, pass]  # (string[]) domyślnie []

	# motyw wizualny (od Tracy 2.8)
	dumpTheme: dark               # (light|dark) domyślnie 'light'

	# wyświetlić miejsce, w którym została wywołana funkcja dump()?
	showLocation: ...             # (bool) domyślnie zgodnie z wersją Tracy

Instalacja rozszerzeń Tracy:

tracy:
	# dodaje panele do Paska Tracy
	bar:
		- Nette\Bridges\DITracy\ContainerPanel
		- IncludePanel
		- XDebugHelper('myIdeKey')
		- MyPanel(@MyService)

	# dodaje panele do BlueScreen
	blueScreen:
		- DoctrinePanel::renderException

Inne opcje:

tracy:
	# w trybie deweloperskim wyświetla błędy typu notice lub warning jako BlueScreen
	strictMode: ...           # domyślnie true

	# wyświetlać wyciszone (@) komunikaty błędów?
	scream: ...               # domyślnie false

	# format linku do otwarcia w edytorze
	editor: ...               # (string) domyślnie 'editor://open/?file=%file&line=%line'

	# ścieżka do szablonu z własną stroną dla błędu 500
	errorTemplate: ...        # (string) domyślnie nieustawione

	# wyświetlać Pasek Tracy?
	showBar: ...              # (bool) domyślnie true

	editorMapping:
		# oryginał: nowa
		/var/www/html: /data/web
		/home/web: /srv/html

Wartości opcji logSeverity, strictMode i scream można zapisywać jako tablicę poziomów błędów (np. [E_WARNING, E_NOTICE]) lub jako wyrażenie używane w języku PHP (np. E_ALL & ~E_NOTICE).

Usługi DI

Te usługi są dodawane do kontenera DI:

Nazwa Typ Opis
tracy.logger Tracy\ILogger logger
tracy.blueScreen Tracy\BlueScreen BlueScreen
tracy.bar Tracy\Bar Pasek Tracy