Kim Nasıl Görür?
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:
?debug yazarak kendin acarsınSayfa cache'li olsa bile calisir. Kullanici sarki dinlerken her sarki degisiminde sistem kontrol eder, debug aciksa paneli yukler.
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.
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
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 |
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
| 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 | - |
| 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 |