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