Teknik Mimari Raporu
V2.0 StableV2 Ultimate Sözlük yazılımı, Framework-less (Çerçevesiz) bir yaklaşımla, saf PHP 8+ kullanılarak geliştirilmiştir. Bu yaklaşım, Laravel veya Symfony gibi ağır frameworklerin yarattığı performans yükünü (bloat) ortadan kaldırır. Sunucu kaynaklarını minimum seviyede tüketirken, modern MVC prensiplerini (Model-View-Controller) gevşek bir yapıda uygular.
Composer ve Vendor bağımlılığı yoktur. Hosting taşıma işlemlerinde dosya kopyalamak yeterlidir. Milisaniyelik response süreleri (TTFB) sunar.
1. Dosya ve Klasör Yapısı
Proje, mantıksal ayrımı sağlayan ve bakımı kolaylaştıran modüler bir yapıya sahiptir.
- /api - AJAX istekleri için JSON endpointleri
- /config - Veritabanı ve global ayar dosyaları
- /includes - Çekirdek fonksiyonlar ve sınıflar
- router.php - URL yönlendirme motoru
- functions.php - Global yardımcı fonksiyonlar
- db.php - PDO bağlantı nesnesi
- /pages - Sayfa controller ve view dosyaları
- /admin - Yönetim paneli sayfaları
- topic.php - Başlık detay sayfası
- users.php - Profil sayfası
- /assets - CSS, JS ve imaj dosyaları
- index.php - Tek giriş noktası (Front Controller)
2. Veritabanı Şeması
MySQL ilişkisel veritabanı yapısı, yüksek trafik altında performans verecek şekilde indexlenmiştir.
| Tablo Adı | Açıklama | Kritik İlişkiler |
|---|---|---|
users |
Kullanıcı verileri, yetkiler ve profil ayarları | PK: id |
topics |
Sözlük başlıkları | FK: user_id |
entries |
Başlıklara girilen içerikler | FK: topic_id, user_id |
events |
Etkinlik takvimi verileri | FK: creator_id |
businesses |
Onaylı işletme profilleri | FK: owner_id |
site_settings |
Key-Value yapısında dinamik site ayarları | - |
3. Güvenlik Katmanı
Sistem, OWASP standartları gözetilerek temel güvenlik açıklarına karşı korumalıdır.
SQL Injection Koruması
Tüm veritabanı sorguları PDO Prepared Statements kullanılarak yapılır. Dışarıdan gelen veriler asla doğrudan SQL sorgusuna eklenmez.
XSS (Cross-Site Scripting) Koruması
Ekrana basılan tüm kullanıcı verileri global e() fonksiyonu ile sanitize edilir. Bu
fonksiyon htmlspecialchars() ile script etiketlerini etkisiz hale getirir.
Session Hijacking
Oturumlar sunucu tarafında güvenli bir şekilde saklanır. session_regenerate_id() ile
oturum sabitleme saldırıları engellenir.
4. Router ve SEO
Özel yazılmış Router sınıfı, gelen tüm istekleri index.php üzerinden
karşılar ve ilgili sayfaya yönlendirir (Front Controller Pattern).
URL'ler tamamen okunabilir ve arama motoru dostudur.
Örn:
site.com/baslik/kku-sozluk--123
5. Frontend Teknolojileri
TailwindCSS (Utility-First)
Tasarım sistemi, TailwindCSS v3.4 CDN sürümü üzerine kuruludur. tailwind.config
dosyasında özel renk paletleri (Theme System) tanımlanmıştır. Bu sayede "Koyu Mod" ve "Tema
Değiştirme" özellikleri CSS değişkenleri ile yönetilir.
Alpine.js (Reaktivite)
jQuery kullanılmamıştır. Tüm interaktif öğeler (Modallar, Dropdownlar, Tablar) Alpine.js ile reaktif olarak çalışır. Bu sayede çok daha az kod ile modern bir UX sağlanır.
PWA (Progressive Web App)
Sistem, manifest.json ve service-worker.js içerir. Tarayıcıda "Ana Ekrana
Ekle" özelliği aktiftir. Cache stratejisi ile statik varlıklar (CSS, JS, Logo) tarayıcıda
önbelleklenir.
6. Dahili API Sistemi
Frontend ile Backend arasındaki veri alışverişi, /api altında çalışan JSON endpointleri
ile sağlanır.
| Endpoint | Method | İşlem |
|---|---|---|
/api/entry/add |
POST | Yeni entry girişi |
/api/entry/vote |
POST | Entry oylama (up/down) |
/api/entry/favorite |
POST | Favorilere ekle/çıkar |
/api/gundem |
GET | Gündem başlıklarını getir |