Yeni bir tema oluşturulduğunda (örn: muzibu), her modülde o temanın view dosyaları yoksa site çöküyor.
Hata: "View [front.homepage] not found"
View bulunamazsa otomatik olarak simple temasına düş. Simple de yoksa front/ klasörüne düş.
Bu sayede:
Ne Yapılacak: getViewWithFallback() metodu eklenecek
Nasıl Çalışacak:
Dosya: app/Services/ThemeService.php
Ne Yapılacak: @themeView() ve @themeInclude() directive'leri
Nasıl Çalışacak:
@themeView('homepage') yazılır@include yerine kullanılırDosya: app/Providers/AppServiceProvider.php
Ne Yapılacak: Tüm kontrolcülerde view çağrısı standardize edilecek
Etkilenen Modüller:
Mevcut try-catch blokları kaldırılacak, ThemeService fallback'i yönetecek.
Ne Yapılacak: Header, footer, sidebar include'ları güvenli hale gelecek
Nasıl Çalışacak:
@include("themes.{$theme}.layouts.header") yerine@themeInclude('layouts.header') kullanılacakNe Yapılacak: Simple teması tüm modülleri kapsayacak şekilde tamamlanacak
Neden: Fallback teması olduğu için her view'ın simple versiyonu olmalı
Modules/Page/resources/views/
├── front/ ← Son fallback (her zaman var)
│ ├── index.blade.php
│ ├── show.blade.php
│ └── homepage.blade.php
│
└── themes/
├── simple/ ← Ana fallback tema
│ ├── index.blade.php
│ ├── show.blade.php
│ └── homepage.blade.php
│
├── ixtif/ ← Tenant 2 özel
│ └── homepage.blade.php (özelleştirilmiş)
│
└── muzibu/ ← Tenant 1001 özel
└── (boş olabilir - simple'a fallback)
| Kriter | Öncesi | Sonrası |
|---|---|---|
| Yeni tema ekleme | 15+ modülde klasör oluştur | Sadece özel view'lar yeterli |
| View bulunamadı hatası | Site çöker (500) | Otomatik fallback |
| Bakım kolaylığı | Her temada aynı dosyalar | Merkezi simple tema |
| Tenant izolasyonu | Tenant'a özel dosya zorunlu | İsteğe bağlı özelleştirme |