Teknik Mimari Raporu

V2.0 Stable

V2 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.

💡
Neden Native PHP?
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.

Proje Ağacı
  • /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.

// GÜVENLİ: Prepared Statement kullanımı $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]);

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).

🔗
SEF URL Yapısı
URL'ler tamamen okunabilir ve arama motoru dostudur.
Örn: site.com/baslik/kku-sozluk--123
// includes/router.php mantığı public function match($uri) { foreach ($this->routes as $route) { if (preg_match($route['pattern'], $uri, $matches)) { return $route['page']; } } }

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