Tamamlandı 31 Aralık 2025

Response Cache & JSON Constraint Fix

Muzibu.com.tr performans iyileştirmesi ve translatable model hata düzeltmesi

Basit Anlatım (Herkes İçin)

Ne yapıldı?

  • Otomatik cache temizleme: Artık admin panelden herhangi bir içerik (şarkı, albüm, blog, sayfa vb.) güncellendiğinde site cache'i otomatik temizleniyor. "Değişiklikler yansımıyor" sorunu çözüldü!
  • Veritabanı hatası düzeltildi: Şarkı dinleme sayısı artırılırken veya favorilere eklenirken çıkan hata giderildi.
  • Corporate sayfa cache sorunu: Kurumsal üyelik sayfası için cache doğru çalışıyor artık.

Kullanıcı deneyimi:

  • Admin panelden yapılan değişiklikler anında siteye yansır
  • Şarkı çalma, favorilere ekleme gibi işlemler hatasız çalışır
  • Site hızı korunur (cache guest kullanıcılar için aktif)

Teknik Detaylar (Geliştiriciler İçin)

1. HasTranslations Trait - JSON Constraint Fix

Dosya: app/Traits/HasTranslations.php

Problem:

  • MariaDB'de json_valid() constraint'li 238 kolon var
  • touch(), increment() gibi işlemler plain string gönderiyordu
  • Sonuç: CONSTRAINT `muzibu_songs.title` failed

Çözüm:

  • setAttribute() - Plain string'i JSON formatına encode eder
  • originalIsEquivalent() - False dirty detection'ı önler
  • getRawTranslations() - Admin formları için raw JSON döner

2. Global Response Cache Auto-Clear

Dosya: app/Providers/EventServiceProvider.php

Mekanizma:

  • Model::saved() ve Model::deleted() global event listener
  • Her model değişikliğinde ResponseCache::clear()
  • Excluded: Activity log, Telescope, Pulse (gereksiz temizleme önlenir)
  • Tenant-aware: Her tenant kendi cache ayarını kontrol eder

3. Cache Profile Path Düzeltmeleri

Dosyalar: app/Services/CacheProfiles/*.php

CoreCacheProfile:

  • corporate eklendi (sadece corporate/* vardı)

MuzibuCacheProfile:

  • Yanlış muzibu/dashboard, muzibu/corporate kaldırıldı
  • Doğru path'ler korundu: muzibu/favorites, muzibu/my-playlists, muzibu/listening-history

Etkilenen Modeller (38 Model)

Song
Album
Artist
Genre
Sector
Radio
Playlist
Page
Blog
BlogCategory
ShopProduct
ShopCategory
ShopBrand
Portfolio
Announcement
Menu/MenuItem
SeoSetting
SubscriptionPlan
Coupon
+ 19 daha...

Performans Sonuçları

Önceki (Cache Yok)

1.5 - 2.0s

TTFB (Time to First Byte)

Şimdi (Cache Aktif)

0.6 - 0.7s

~60% daha hızlı

Model Testleri

Song.touch()
Album.touch()
Artist.touch()
Genre.touch()
Playlist.touch()
Page.touch()
Blog.touch()
ShopProduct.touch()