Framework Kural Seti

ArtiFrame'in gücü, koyduğu değişmez standartlardan gelir. Projeye dahil olan bir geliştirici aşağıdaki kurallara uyduğu sürece sistem stabilitesi garanti altındadır.

Kural 01

data-js Mimarisi

JavaScript olayları asla bir class veya id üzerinden dinlenemez. Bunlar görsel / stil kimliklerdir. Tüm JS etkileşimleri data-js özniteliği ile yönetilir. CSS bir class sildiğinde JavaScript asla çökmez.

Anti-Pattern (Desteklenmez)
<!-- HTML -->
<button id="submitBtn" class="btn">Gönder</button>

// JavaScript
document.getElementById('submitBtn')
  .addEventListener('click', ...)
ArtiFrame Standardı
<!-- HTML -->
<button class="btn btn-primary" data-js="login-submit">Gönder</button>

// JavaScript
document.querySelector('[data-js="login-submit"]')
  .addEventListener('click', ...)
Kural 02

Tema Mimarisi

Koyu/Açık mod ve temalar, <html> etiketinin data-theme ve data-mode öznitelikleri üzerinden yönetilir. body sınıfları kullanılmaz.

CSS Variables
<!-- HTML -->
<html lang="tr" data-theme="default" data-mode="light">

/* app.css */
html[data-theme="default"][data-mode="dark"] {
    --bg-color: #0b0c0e;
    --text-main: #ffffff;
}
html[data-theme="default"][data-mode="light"] {
    --bg-color: #ffffff;
    --text-main: #111111;
}
Kural 03

Güvenli Veri Akışı

Veritabanından gelen her veri, DOM'a basılmadan önce ViewMethod display() ile sarılır. API'ye gelen her veri ise işlenmeden önce stripHtml() veya sanitizeInt() gibi SystemMethod fonksiyonlarıyla temizlenir.

Kural 04

APP_ENV ile Hata Yönetimi

.env dosyasındaki APP_ENV değeri hata görünürlüğünü belirler (1 = Debug, 0 = Production). Production ortamında son kullanıcıya asla PHP stack trace veya raw hata mesajı gösterilmez.

config/app-version.php
define('APP_ENV', (int)$_ENV['APP_ENV']);

if (APP_ENV === 1) {
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
} else {
    ini_set('display_errors', 0);
}