Debug Sistemi

Kim Nasıl Görür?

Basit Anlatim

Debug sistemi, kullanicinin muzik dinlerken yasadigi sorunlari tespit etmek icin kullanilir. Kullanicinin ekraninda kucuk bir RADAR etiketi belirir, bu etiket arka planda performans verilerini toplar.

Iki tip kullanici var:

  • Root (Sen): URL'ye ?debug yazarak kendin acarsın
  • Normal kullanici: Admin panelinden acarsın, kullanici hicbir sey yapmaz — otomatik belirir

Sayfa cache'li olsa bile calisir. Kullanici sarki dinlerken her sarki degisiminde sistem kontrol eder, debug aciksa paneli yukler.

ROOT

Root Kullanici (Sen)

1. URL'ye ?debug ekle

Ornek: mztest.muzibu.com?debug veya mztest.muzibu.com/genres/pop?debug

2. Temizlik modali cikar (15 saniye geri sayim)

Cache, localStorage, sessionStorage temizlenir. Oturum korunur.

3. Sayfa yenilenir, RADAR badge'i belirir

Badge'e tıklayınca tam panel acilir. Sonraki sayfalarda otomatik kalir.

Cache Durumu

?debug parametresi varken sayfa asla cache'lenmez. Middleware taze HTML doner, meta tag'ler ve JS dogru yuklenir.

NORMAL USER

Normal Kullanici (Admin'den Tetiklenen)

1. Admin panelinden kullanicinin debug'ini ac

Kullanici yonetimi → debugger_config → active: true, expires_at ayarla

2. Kullanici sarki dinlemeye devam eder

Hicbir sey yapmasina gerek yok. Sayfa cache'li olsa bile sorun degil.

3. Sonraki sarki calindığında API _debug_format flag'i doner

Player-core.js bunu gorur → performance-debug.js'i aninda dinamik yukler

4. Debug paneli otomatik acilir — sayfa yenileme gerekmez

Ayni zamanda mz_debug_on=1 cookie'si set edilir (24 saat gecerli)

5. Sonraki sayfa gecislerinde cookie devreye girer

Cache'li sayfada inline script cookie'yi gorur → debug JS'i tekrar yukler

3 Katmanli Yukleme Sistemi

Debug JS'in yuklenmesi icin 3 bagimsiz mekanizma var. Biri calismazsa digeri devreye girer.

Katman Ne Zaman? Nasil? Sayfa Yenileme?
1. Static Sayfa taze yuklendiyse (cache'siz) Blade @if($isDebugAllowed)<script> tag direkt Hayir (sayfa yuklemede)
2. API Sarki calindığında Stream API _debug_format → player-core dinamik yukler Hayir (aninda)
3. Cookie Sayfa cache'li + cookie var Inline script mz_debug_on cookie kontrol → dinamik yukle Sayfa gecisi gerekir

Akis Diyagrami

ADMIN DEBUG ACAR | v [Kullanici sarki dinliyor, cache'li sayfa] | v Stream API cagrisi ──→ _debug_format + mz_debug_on cookie | v player-core.js: "_debug_format var mi?" | ┌───┴───┐ EVET HAYIR | | v v debug JS (bir sey yapma) dinamik yukle | v RADAR badge belirir | v [Kullanici baska sayfaya gecer — cache'li] | v Inline script: "mz_debug_on cookie var mi?" | ┌───┴───┐ EVET HAYIR | | v v debug JS (debug yok) tekrar yukle | v RADAR badge devam eder ──────────────────────────────────── ADMIN DEBUG KAPATIR | v Sonraki Stream API ──→ _debug_format YOK + cookie SIL | v Sonraki sayfada cookie yok → debug yuklenmez | v Normal sayfaya donulur

Debug Kapatildiginda

1. Admin panelinden debug'i kapat (veya sure dolsun)

2. Sonraki sarki calindığında API _debug_format gondermez

3. API response'u mz_debug_on cookie'sini siler

4. Sonraki sayfa gecisinde cookie yok → debug JS yuklenmez → panel kaybolur

Ozet Tablosu

ROOT USER (Debug Acik) USER (Debug Kapali)
Nasil acilir? ?debug URL parametresi Otomatik (admin acar) -
Kullanici bir sey yapar mi? Evet, URL'ye yazar Hayir, otomatik -
Cache'li sayfada calisir mi? Evet (?debug cache bypass) Evet (API + cookie) -
Sayfa yenileme gerekir mi? Ilk seferde evet Hayir -
Ne zaman belirir? ?debug + temizlik sonrasi Sonraki sarki calindığında -
API _debug_format Gonderilir Gonderilir Gonderilmez
mz_debug_on cookie Yok (gerek yok) Set edilir (24 saat) Silinir
Nasil kapanir? Sayfa kapatma / konsol Admin kapatir veya sure dolar -

Teknik Dosya Referanslari

Gorev Dosya Satirlar
Meta tag + JS yukleme resources/views/themes/muzibu/layouts/app.blade.php 94-143
API debug flag + cookie Modules/Muzibu/.../SongStreamController.php 98-130
Dinamik JS yukleme (sarki calinca) public/themes/muzibu/js/player/core/player-core.js 1394-1420
Debug panel init + show/hide public/themes/muzibu/js/player/features/performance-debug.js 3605-3650
Cache header yonetimi app/Http/Middleware/FixResponseCacheHeaders.php 57-64
24 Subat 2026 • Muzibu.com.tr