Konfiguracja Tracy

Poniższe przykłady zakładają zdefiniowany alias klasy:

use Tracy\Debugger;

Logowanie błędów

$logger = Debugger::getLogger();

// e-mail(e), na które 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 wysyłania e-maila
$logger->mailer = /* ... */;             // (callable) domyślnie wysyłanie przez mail()

// minimalny odstęp przed wysłaniem kolejnych e-maili?
$logger->emailSnooze = /* ... */;        // (string) domyślnie '2 days'

// dla których poziomów błędów logowany jest także BlueScreen?
Debugger::$logSeverity = E_WARNING | E_NOTICE;  // domyślnie 0 (żaden poziom błędu)

Zachowanie dump()

// maksymalna długość ciągu
Debugger::$maxLength = 150;              // (int) domyślnie zależnie od wersji Tracy

// maksymalna głębokość zagnieżdżenia
Debugger::$maxDepth = 10;                // (int) domyślnie zależnie od wersji Tracy

// maksymalna liczba wyświetlanych pozycji tablicy/obiektu
Debugger::$maxItems = 100;               // (int) domyślnie zależnie od wersji Tracy

// ukrywa 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świetlać miejsce, z którego wywołano dump()?
Debugger::$showLocation = /* ... */;     // (bool) domyślnie zależnie od wersji Tracy

Pozostałe

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

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

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

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

// pokazywać Tracy Bar?
Debugger::$showBar = /* ... */;          // (bool) domyślnie true

// polecenie otwierające przeglądarkę z zalogowanym BlueScreenem (np. w CLI)
Debugger::$browser = /* ... */;          // (string) domyślnie nieustawione

// tablica funkcji wywoływanych po błędzie krytycznym albo nieprzechwyconym wyjątku
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };

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

Nette Framework

Jeśli używasz Nette Framework, możesz skonfigurować Tracy i dodać nowe panele do Tracy Bara za pomocą pliku konfiguracyjnego. W konfiguracji możesz ustawić parametry i dodać nowe panele do Tracy Bara. Ustawienia te stosowane są dopiero po utworzeniu kontenera DI, więc błędy powstałe wcześniej nie mogą ich uwzględnić.

Konfiguracja logowania błędów:

tracy:
	# e-mail(e), na które 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 uśpienia wysyłania e-maili (od Tracy 2.8.8)
	emailSnooze: ...                 # (string) domyślnie '2 days'

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

	# dla których poziomów błędów logowany jest także BlueScreen?
	logSeverity: [E_WARNING, E_NOTICE]  # domyślnie 0

Konfiguracja funkcji dump():

tracy:
	# maksymalna długość ciągu
	maxLength: 150                # (int) domyślnie zależnie od wersji Tracy

	# maksymalna głębokość zagnieżdżenia
	maxDepth: 10                  # (int) domyślnie zależnie od wersji Tracy

	# maksymalna liczba wyświetlanych pozycji tablicy/obiektu
	maxItems: 100                 # (int) domyślnie zależnie od wersji Tracy

	# ukrywa 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świetlać miejsce, z którego wywołano dump()?
	showLocation: ...             # (bool) domyślnie zależnie od wersji Tracy

Instalacja rozszerzeń Tracy:

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

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

Pozostałe opcje:

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

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

	# format odnośnika do otwarcia w edytorze
	editor: ...               # (string) domyślnie 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'

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

	# pokazywać Tracy Bar?
	showBar: ...              # (bool) domyślnie true

	# polecenie otwierające przeglądarkę z zalogowanym BlueScreenem (np. w CLI)
	browser: ...             # (string) domyślnie nieustawione

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

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

Usługi DI

Do kontenera DI dodawane są te usługi:

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