Döküm (Dumping)

Her hata ayıklayıcı, değişkenin içeriğini ayrıntılı olarak yazdıran var_dump fonksiyonunun iyi bir arkadaşıdır. Maalesef, HTML ortamında çıktı biçimlendirmeyi kaybeder ve tek bir satıra karışır, HTML kodunun temizlenmesinden bahsetmiyorum bile. Pratikte, var_dump yerine daha kullanışlı bir fonksiyon kullanmak gerekir. İşte bu fonksiyon dump().

$arr = [10, 20.2, true, null, 'hello'];

dump($arr);
// veya Debugger::dump($arr);

şu çıktıyı üretir:

Varsayılan açık temayı koyu temaya değiştirebilirsiniz:

Debugger::$dumpTheme = 'dark';

Ayrıca, Debugger::$maxDepth kullanarak iç içe geçme derinliğini ve Debugger::$maxLength kullanarak görüntülenen etiketlerin uzunluğunu değiştirebiliriz. Daha düşük değerler doğal olarak Tracy'yi hızlandırır.

Debugger::$maxDepth = 2; // varsayılan: 3
Debugger::$maxLength = 50; // varsayılan: 150

dump() fonksiyonu diğer yararlı bilgileri de yazdırabilir. Tracy\Dumper::LOCATION_SOURCE sabiti, fonksiyonun çağrıldığı yere giden yolu içeren bir araç ipucu ekler. Tracy\Dumper::LOCATION_LINK bize o yere bir bağlantı sağlar. Tracy\Dumper::LOCATION_CLASS, dökümü yapılan her nesne için, sınıfının tanımlandığı dosyanın yolunu içeren bir araç ipucu yazdırır. Sabitler, dump() çağrısından önce Debugger::$showLocation değişkenine ayarlanır. Aynı anda birden fazla değer ayarlamak istiyorsak, bunları | operatörü ile birleştiririz.

Debugger::$showLocation = Tracy\Dumper::LOCATION_SOURCE; // Yalnızca fonksiyon çağrı yerinin çıktısını ayarlar
Debugger::$showLocation = Tracy\Dumper::LOCATION_CLASS | Tracy\Dumper::LOCATION_LINK; // Aynı anda bağlantı çıktısını ve sınıf yolunu ayarlar
Debugger::$showLocation = false; // Ek bilgilerin çıktısını kapatır
Debugger::$showLocation = true; // Tüm ek bilgilerin çıktısını açar

dump() fonksiyonuna pratik bir alternatif dumpe() (dump & exit) ve bdump() fonksiyonudur. Bu, değişkenin değerini Tracy Bar panelinde yazdırmamızı sağlar. Bu çok kullanışlıdır, çünkü dökümler sayfa düzeninden ayrıdır ve yanlarına yorum da ekleyebiliriz.

bdump([2, 4, 6, 8], 'ona kadar çift sayılar');
bdump([1, 3, 5, 7, 9], 'ona kadar tek sayılar');