debugging Öne Çıkan
16500 yıldız

Laravel Debugbar

Geliştirici: Barry vd. Heuvel

Geliştirme aşamasında SQL sorgularını, route, view ve bellek tüketimini izleyen hata ayıklama paneli.

Kurulum

Composer
composer require barryvdh/laravel-debugbar

Dokümantasyon & Kullanım

Markdown

Laravel Debugbar

Laravel Debugbar (PHPDebugBar entegrasyonu), yerel geliştirme ortamında sayfa yükleme sürelerini, veritabanı (SQL) sorgularını, bellek tüketimini, log kayıtlarını, view parametrelerini ve route detaylarını sayfanın altında etkileşimli bir çubuk olarak gösteren vazgeçilmez bir profil çıkarma ve hata ayıklama aracıdır.

Neden Tercih Edilmeli?

  • N+1 Sorgu Tespiti: Sayfada tekrarlayan veya gereksiz çalışan SQL sorgularını ve sorgu çalışma sürelerini renkli uyarılarla anında görmenizi sağlar.
  • Detaylı Zaman Çizelgesi (Timeline): Uygulama ömrünün (boot, routing, controller, view rendering) hangi aşamasında ne kadar süre harcandığını mikrosaniye düzeyinde analiz eder.
  • Bellek ve CPU İzleme: Sayfa yürütülürken tüketilen tepe bellek (peak memory) miktarını gösterir.
  • Model ve View Takibi: Render edilen Blade şablonlarını ve yüklenen Eloquent modellerini listeler.
  • AJAX ve API Desteği: Arka planda atılan AJAX isteklerini ve OpenHandler özelliğiyle geçmiş istekleri denetlemenize olanak tanır.

Kurulum

Geliştirme ortamı bağımlılığı (--dev) olarak paketi projenize ekleyin:

composer require barryvdh/laravel-debugbar --dev

Yapılandırma dosyasını yayınlamak isterseniz:

php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider"

Yapılandırma

.env dosyanızda debug modunun açık olması Debugbar'ın otomatik olarak görünmesini sağlar:

APP_DEBUG=true
DEBUGBAR_ENABLED=null

Önemli: Canlı (Production) ortamlarda APP_DEBUG=false olduğundan emin olun veya DEBUGBAR_ENABLED=false olarak ayarlayın.

Temel Kullanım

Debugbar genellikle otomatik çalışır ve sayfaların altına çubuk ekler. Ancak kod içerisinde manuel ölçümler ve mesajlar göndermek için Debugbar facade'ını veya debug() yardımcısını kullanabilirsiniz:

Mesaj ve Hata Günlüğü Ekleme

use Barryvdh\Debugbar\Facades\Debugbar;

// Basit log mesajları
Debugbar::info('Kullanıcı ödeme adımına geçti.');
Debugbar::error('Ödeme ağ geçidi yanıt vermedi!');
Debugbar::warning('Stok miktarı kritik seviyede: 2');

// Yardımcı fonksiyon ile nesne dökümü
debug($user, $cartItems);

Zaman Ölçümü (Zamanlayıcı Başlatma/Durdurma)

Ağır bir işlemin ne kadar sürdüğünü ölçmek için:

use Barryvdh\Debugbar\Facades\Debugbar;

Debugbar::startMeasure('render_heavy_report', 'Büyük Rapor Hazırlama');

// Ağır veri işleme veya döngü
$report = $reportService->generateHugeDataset();

Debugbar::stopMeasure('render_heavy_report');

İstisna (Exception) Yakalama

try {
    $paymentService->charge($order);
} catch (\Exception $e) {
    Debugbar::addThrowable($e);
}

Koşullu Açma ve Kapatma

Belirli bir route veya controller metodunda Debugbar'ı gizlemek isterseniz:

use Barryvdh\Debugbar\Facades\Debugbar;

public function exportPdf()
{
    Debugbar::disable();

    return response()->download($pdfPath);
}