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 |