v2 - Güncellenmiş Dokümantasyon

Slug Management & Dynamic Route Sistemi

URL Yönetimi ve Dinamik Rota Sisteminin Teknik Analizi

Son güncelleme: 20 Ocak 2026

Sorun #1

Case-Sensitive Modül Adı

Sorun

Admin panelde slug ayarları "Yapılandırma bulunamadı" hatası veriyordu.

DB: "blog" → Klasör: "Blog" ❌

Çözüm

findActualModuleName() fonksiyonu ile case-insensitive arama eklendi.

ModuleSlugService.php:273-299
Sorun #2

Show Slug Özelleştirmesi Çalışmıyor

Senaryo

Yıldırım Panjur sitesinde blog detay URL'ini /haberler/... olarak ayarladın ama sistem hala /blog/... kullanıyordu.

Eski Kod (Hatalı)

// Sadece index slug kontrol ediliyordu
if ($slug1 === $moduleSlugMap['index']) {
    // show sayfasına yönlendir
}

Yeni Kod (Düzeltildi)

// Önce show slug, sonra index slug
if ($slug1 === $moduleSlugMap['show']) {
    return show;
}
if ($slug1 === $moduleSlugMap['index']) {
    return show; // backward compat.
}
DynamicRouteResolver.php:161-185
Sorun #3

Cache Tenant İzolasyonu Eksikti

Kritik Hata

Cache key'ler tenant-specific değildi! Tüm tenant'lar aynı cache key'i paylaşıyordu. Bir tenant slug değiştirince diğerinin değeri eziliyordu.

Eski Cache Key

module_multilang_slug_blog_show_tr
// Tüm tenant'lar aynı key'i kullanıyor!

Yeni Cache Key

module_multilang_slug_3_blog_show_tr
// Tenant ID eklendi: izolasyon sağlandı
ModuleSlugService.php:131-144
Sorun #4

Livewire 419 CSRF Token Hatası

Belirti

Sitede gezinirken livewire/update isteği 419 hatası veriyordu. CartWidget ve diğer Livewire bileşenleri çalışmıyordu.

Neden?

ResponseCache, tüm sayfaları max-age=3600 ile cache'liyordu. CSRF token eski kalıyordu.

Çözüm

Livewire endpoint'leri cache'den hariç tutuldu:

if (str_starts_with($path, 'livewire')) {
    return false;
}
TenantCacheProfile.php:116-120

Tüm Değiştirilen Dosyalar

Dosya Değişiklik Sorun #
ModuleSlugSettingsComponent.php Case-insensitive loadModuleData() #1
ModuleSlugService.php findActualModuleName() + Tenant-specific cache key #1 #3
DynamicRouteResolver.php Show slug desteği eklendi #2
TenantCacheProfile.php Livewire endpoint'leri exclude #4