Tracy Yapılandırması
Aşağıdaki örnekler, şu sınıf takma adının tanımlandığını varsayar:
use Tracy\Debugger;
Hata Günlükleme
$logger = Debugger::getLogger();
// hata bildirimlerinin gönderileceği e-posta(lar)
$logger->email = 'dev@example.com'; // (string|string[]) varsayılan olarak ayarsız
// e-postayı gönderen
$logger->fromEmail = 'me@example.com'; // (string) varsayılan olarak ayarsız
// e-posta gönderme yordamı
$logger->mailer = /* ... */; // (callable) varsayılan mail() ile gönderim
// başka e-posta göndermek için en kısa aralık
$logger->emailSnooze = /* ... */; // (string) varsayılan '2 days'
// hangi hata düzeylerinde BlueScreen da günlüklensin?
Debugger::$logSeverity = E_WARNING | E_NOTICE; // varsayılan 0 (hiçbir hata düzeyi)
dump() Davranışı
// en fazla dize uzunluğu
Debugger::$maxLength = 150; // (int) varsayılan Tracy sürümüne göre
// en fazla iç içe geçme derinliği
Debugger::$maxDepth = 10; // (int) varsayılan Tracy sürümüne göre
// gösterilecek en fazla dizi/nesne öğesi sayısı
Debugger::$maxItems = 100; // (int) varsayılan Tracy sürümüne göre
// bu anahtarların değerlerini gizle (Tracy 2.8'den beri)
Debugger::$keysToHide = ['password', /* ... */]; // (string[]) varsayılan []
// görsel tema (Tracy 2.8'den beri)
Debugger::$dumpTheme = 'dark'; // (light|dark) varsayılan 'light'
// dump() çağrısının yapıldığı konum gösterilsin mi?
Debugger::$showLocation = /* ... */; // (bool) varsayılan Tracy sürümüne göre
Diğerleri
// geliştirme kipinde notice ya da warning türündeki hataları BlueScreen olarak göster
Debugger::$strictMode = /* ... */; // (bool|int) varsayılan false, belirli hata düzeyleri seçilebilir (örneğin E_USER_DEPRECATED | E_DEPRECATED)
// susturulmuş (@) hata mesajları gösterilsin mi?
Debugger::$scream = /* ... */; // (bool|int) varsayılan false, 2.9 sürümünden beri belirli hata düzeyleri seçilebilir (örneğin E_USER_DEPRECATED | E_DEPRECATED)
// düzenleyicide açmak için bağlantı biçimi
Debugger::$editor = /* ... */; // (string|null) varsayılan 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'
// hata 500 için özel sayfa şablonunun yolu
Debugger::$errorTemplate = /* ... */; // (string) varsayılan olarak ayarsız
// Tracy Bar gösterilsin mi?
Debugger::$showBar = /* ... */; // (bool) varsayılan true
// günlüklenen BlueScreen ile tarayıcıyı açacak komut (örneğin CLI'da)
Debugger::$browser = /* ... */; // (string) varsayılan olarak ayarsız
// ölümcül bir hatadan ya da yakalanmamış bir istisnadan sonra çağrılan fonksiyonların dizisi
Debugger::$onFatalError[] = function (Throwable $e) { /* ... */ };
Debugger::$editorMapping = [
// özgün => yeni
'/var/www/html' => '/data/web',
'/home/web' => '/srv/html',
];
Nette Framework
Nette Framework kullanıyorsanız, Tracy'yi yapılandırma dosyasıyla ayarlayabilir ve Tracy Bar'a yeni paneller ekleyebilirsiniz. Yapılandırmada parametreleri ayarlayabilir ve Tracy Bar'a yeni paneller ekleyebilirsiniz. Bu ayarlar yalnızca DI container oluşturulduktan sonra uygulanır; bu yüzden ondan önce oluşan hatalar bunları yansıtamaz.
Hata günlükleme yapılandırması:
tracy:
# hata bildirimlerinin gönderileceği e-posta(lar)
email: dev@example.com # (string|string[]) varsayılan olarak ayarsız
# e-postayı gönderen
fromEmail: robot@example.com # (string) varsayılan olarak ayarsız
# e-posta gönderiminin erteleme süresi (Tracy 2.8.8'den beri)
emailSnooze: ... # (string) varsayılan '2 days'
# e-posta göndermek için Nette mailer kullanılsın mı? (Tracy 2.5'ten beri)
netteMailer: ... # (bool) varsayılan true
# hangi hata düzeylerinde BlueScreen da günlüklensin?
logSeverity: [E_WARNING, E_NOTICE] # varsayılan 0
dump() fonksiyonunun yapılandırması:
tracy:
# en fazla dize uzunluğu
maxLength: 150 # (int) varsayılan Tracy sürümüne göre
# en fazla iç içe geçme derinliği
maxDepth: 10 # (int) varsayılan Tracy sürümüne göre
# gösterilecek en fazla dizi/nesne öğesi sayısı
maxItems: 100 # (int) varsayılan Tracy sürümüne göre
# bu anahtarların değerlerini gizle (Tracy 2.8'den beri)
keysToHide: [password, pass] # (string[]) varsayılan []
# görsel tema (Tracy 2.8'den beri)
dumpTheme: dark # (light|dark) varsayılan 'light'
# dump() çağrısının yapıldığı konum gösterilsin mi?
showLocation: ... # (bool) varsayılan Tracy sürümüne göre
Tracy extension kurulumu:
tracy:
# Tracy Bar'a panel ekler
bar:
- Nette\Bridges\DITracy\ContainerPanel
- IncludePanel
- XDebugHelper('myIdeKey')
- MyPanel(@MyService)
# BlueScreen'e panel ekler
blueScreen:
- DoctrinePanel::renderException
Diğer seçenekler:
tracy:
# geliştirme kipinde notice ya da warning türündeki hataları BlueScreen olarak göster
strictMode: ... # varsayılan false
# susturulmuş (@) hata mesajları gösterilsin mi?
scream: ... # varsayılan false
# düzenleyicide açmak için bağlantı biçimi
editor: ... # (string) varsayılan 'editor://%action/?file=%file&line=%line&search=%search&replace=%replace'
# hata 500 için özel sayfa şablonunun yolu
errorTemplate: ... # (string) varsayılan olarak ayarsız
# Tracy Bar gösterilsin mi?
showBar: ... # (bool) varsayılan true
# günlüklenen BlueScreen ile tarayıcıyı açacak komut (örneğin CLI'da)
browser: ... # (string) varsayılan olarak ayarsız
editorMapping:
# özgün: yeni
/var/www/html: /data/web
/home/web: /srv/html
logSeverity, strictMode ve scream seçeneklerinin değerleri, hata düzeylerinden
oluşan bir dizi olarak (örneğin [E_WARNING, E_NOTICE]) ya da PHP'de kullanılan bir ifade olarak (örneğin
E_ALL & ~E_NOTICE) yazılabilir.
DI Servisleri
DI container'a şu servisler eklenir:
| Ad | Tür | Açıklama |
|---|---|---|
tracy.logger |
Tracy\ILogger | logger |
tracy.blueScreen |
Tracy\BlueScreen | BlueScreen |
tracy.bar |
Tracy\Bar | Tracy Bar |