Merhabalar,
Açıkçası, 8 yıldır PHP ile proje geliştiriyorum fakat bu süreçte hiçbir noktada Xdebug'a ihtiyaç duyacağımı düşünmemiştim. Ta ki karmaşık projelerde yer almaya başlayana kadar. B2B, B2C veya büyük veri işlenen projelerde Xdebug'ın ne kadar faydalı olabileceğini fark ettim. Bu makalede size Xdebug’ın nasıl kurulduğunu veya kullanıldığını anlatmayacağım; eğer bu konuda meraklıysanız ve zaman bulabilirsem, bununla ilgili bir makale daha hazırlayabilirim. Bu makale öncelikle orta ve üzeri seviyedeki yazılımcılara hitap etmektedir.
Xdebug Nedir?
Xdebug, PHP'nin bir eklentisidir. Tek amacı, hataları daha kolay ayıklayabilmeniz ve işlemi durdurup yönetebilmenizi sağlamaktır. Ne gibi faydalar sunduğunu daha iyi anlatabilmek için bir senaryo üzerinden ilerleyelim.
Öncelikle bir senaryo düşünelim: 500 tane veri üretelim ve rastgele kullanıcılar oluşturalım. Bu kullanıcıların verilerinde, 2’ye bölündüğünde kalan sıfır olanların `type` değeri 2, 3’e bölündüğünde kalan sıfır olanların ise `type` değeri 3 olacak. Hiçbirine uymuyorsa `type` değeri 1 olacak.
Bu gibi bir senaryoda, her seferinde 500 veri üretecek ve sonuçları görmek için kod yazıp sürecin bitmesini bekleyeceksiniz. Daha sonra verileri silip yeniden oluşturacak, tekrar test edeceksiniz. Bu döngü böyle devam edecek, ta ki istediğiniz sonuca ulaşana kadar.
Peki, istediğimiz sonuç ne?
Bu verilerde `type` değeri 3 olanları belirlemek. "Bir filtre yazarım, `type` değeri 3 olanları alırım" diyebilirsiniz, ancak burada ana mesele, filtreyi yazarken bir hata yapmanız durumunda sürekli test etmek zorunda olmanızdır. Bu da size sürekli zaman kaybettirecektir.
İşte burada Xdebug devreye giriyor. Örneğin, `type` değeri 1 olan 167 veri, `type` değeri 2 olan 250 veri ve `type` değeri 3 olan 83 veri var diyelim. Ancak benim istediğim sadece `type` 3 olanlar ve bunların baş harfi 'A' olanlar. Xdebug olmadan bu işlemleri defalarca kod yazarak test etmeniz gerekirken, Xdebug ile tüm bu işlemleri tek bir süreçle, zaman kaybetmeden yapabilirsiniz.
Senaryo kodu:
Senaryo Kodu:
Bu kodda sadece veriyi oluşturup bir değişkene atıyoruz. Normalde, bu işlem veriyi bir tabloya aktarmak olabilir ancak burada sadece senaryoyu canlandırmak adına bu aktarımı yapmıyoruz.
Filtreleme adımlarını Xdebug ile tek bir işlemde nasıl yönetebileceğinizi göstereyim.
Process'i tetikleyip bir "breakpoint" belirliyoruz ve Xdebug ile bu noktada durmasını söylüyoruz. Artık işlem burada durduktan sonra veriler üzerinde anlık değişiklikler yaparak test edebiliriz.

İlk olarak, 500 veriden `type` değeri 3 olanları almak istiyoruz. Evaluate Expression kısmında istediğimiz sorguyu yazarak anında sonucu görebiliriz.



83 veriyi bulduk. Şimdi ise bu verilerin baş harfi 'A' ile başlayanları bulalım. Sayfayı yenilemeye gerek yok, sadece debug ekranından bu işlemleri yapıyoruz.

Baş harfi 'A' olanların sayısı 4. Eğer bu verilerin `key` değerlerini 0’dan başlatmak isteseydim, kodu güncelleyip hemen anlık olarak test edebilirdim.

Bu işlemleri Xdebug üzerinde hızlıca çözüp, sonuçları kodumuza entegre edebiliriz. Sayfayı sürekli yenilemek yerine, debug ile çok kısa bir sürede sonuç alabiliyoruz.
Sonuç


Özellikle kurumsal şirketlerde zaman çok değerlidir. Xdebug sayesinde, 3 hafta süren bir iş artık sadece 4-5 günde bitiyor ve bu, benim için büyük bir zaman tasarrufu sağlıyor.
Makalemi buraya kadar okuyanlara teşekkür ederim. Umarım faydalı olmuştur ve size katkı sağlayabilmişimdir.
İyi forumlar!
Açıkçası, 8 yıldır PHP ile proje geliştiriyorum fakat bu süreçte hiçbir noktada Xdebug'a ihtiyaç duyacağımı düşünmemiştim. Ta ki karmaşık projelerde yer almaya başlayana kadar. B2B, B2C veya büyük veri işlenen projelerde Xdebug'ın ne kadar faydalı olabileceğini fark ettim. Bu makalede size Xdebug’ın nasıl kurulduğunu veya kullanıldığını anlatmayacağım; eğer bu konuda meraklıysanız ve zaman bulabilirsem, bununla ilgili bir makale daha hazırlayabilirim. Bu makale öncelikle orta ve üzeri seviyedeki yazılımcılara hitap etmektedir.
Xdebug Nedir?
Xdebug, PHP'nin bir eklentisidir. Tek amacı, hataları daha kolay ayıklayabilmeniz ve işlemi durdurup yönetebilmenizi sağlamaktır. Ne gibi faydalar sunduğunu daha iyi anlatabilmek için bir senaryo üzerinden ilerleyelim.
Öncelikle bir senaryo düşünelim: 500 tane veri üretelim ve rastgele kullanıcılar oluşturalım. Bu kullanıcıların verilerinde, 2’ye bölündüğünde kalan sıfır olanların `type` değeri 2, 3’e bölündüğünde kalan sıfır olanların ise `type` değeri 3 olacak. Hiçbirine uymuyorsa `type` değeri 1 olacak.
Bu gibi bir senaryoda, her seferinde 500 veri üretecek ve sonuçları görmek için kod yazıp sürecin bitmesini bekleyeceksiniz. Daha sonra verileri silip yeniden oluşturacak, tekrar test edeceksiniz. Bu döngü böyle devam edecek, ta ki istediğiniz sonuca ulaşana kadar.
Peki, istediğimiz sonuç ne?
Bu verilerde `type` değeri 3 olanları belirlemek. "Bir filtre yazarım, `type` değeri 3 olanları alırım" diyebilirsiniz, ancak burada ana mesele, filtreyi yazarken bir hata yapmanız durumunda sürekli test etmek zorunda olmanızdır. Bu da size sürekli zaman kaybettirecektir.
İşte burada Xdebug devreye giriyor. Örneğin, `type` değeri 1 olan 167 veri, `type` değeri 2 olan 250 veri ve `type` değeri 3 olan 83 veri var diyelim. Ancak benim istediğim sadece `type` 3 olanlar ve bunların baş harfi 'A' olanlar. Xdebug olmadan bu işlemleri defalarca kod yazarak test etmeniz gerekirken, Xdebug ile tüm bu işlemleri tek bir süreçle, zaman kaybetmeden yapabilirsiniz.
Senaryo kodu:
Senaryo Kodu:
public function scenarioOne(): void
{
$this->info('Scenario 1: This is a test scenario.');
$faker = \Faker\Factory::create();
$datas = [];
for ($i = 0; $i < 500; $i++) {
$data = [
'name' => $faker->name,
'email' => $faker->email,
'type' => $i % 2 === 0 ? 2 : ($i % 3 === 0 ? 3 : 1),
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
];
$datas[] = $data;
}
$this->info(count($datas).' chunks created.');
}
Bu kodda sadece veriyi oluşturup bir değişkene atıyoruz. Normalde, bu işlem veriyi bir tabloya aktarmak olabilir ancak burada sadece senaryoyu canlandırmak adına bu aktarımı yapmıyoruz.
Filtreleme adımlarını Xdebug ile tek bir işlemde nasıl yönetebileceğinizi göstereyim.
Process'i tetikleyip bir "breakpoint" belirliyoruz ve Xdebug ile bu noktada durmasını söylüyoruz. Artık işlem burada durduktan sonra veriler üzerinde anlık değişiklikler yaparak test edebiliriz.

İlk olarak, 500 veriden `type` değeri 3 olanları almak istiyoruz. Evaluate Expression kısmında istediğimiz sorguyu yazarak anında sonucu görebiliriz.



83 veriyi bulduk. Şimdi ise bu verilerin baş harfi 'A' ile başlayanları bulalım. Sayfayı yenilemeye gerek yok, sadece debug ekranından bu işlemleri yapıyoruz.

Baş harfi 'A' olanların sayısı 4. Eğer bu verilerin `key` değerlerini 0’dan başlatmak isteseydim, kodu güncelleyip hemen anlık olarak test edebilirdim.

Bu işlemleri Xdebug üzerinde hızlıca çözüp, sonuçları kodumuza entegre edebiliriz. Sayfayı sürekli yenilemek yerine, debug ile çok kısa bir sürede sonuç alabiliyoruz.
Sonuç


Özellikle kurumsal şirketlerde zaman çok değerlidir. Xdebug sayesinde, 3 hafta süren bir iş artık sadece 4-5 günde bitiyor ve bu, benim için büyük bir zaman tasarrufu sağlıyor.
Makalemi buraya kadar okuyanlara teşekkür ederim. Umarım faydalı olmuştur ve size katkı sağlayabilmişimdir.
İyi forumlar!


