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.
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.
<!-- HTML -->
<button id="submitBtn" class="btn">Gönder</button>
// JavaScript
document.getElementById('submitBtn')
.addEventListener('click', ...)
<!-- HTML -->
<button class="btn btn-primary" data-js="login-submit">Gönder</button>
// JavaScript
document.querySelector('[data-js="login-submit"]')
.addEventListener('click', ...)
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.
<!-- 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;
}
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.
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.
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);
}