KKUT Docs

DataStore ile Uygulama Verileri

Storage/Data altındaki JSON uygulama verilerini güvenli, atomik ve container uyumlu biçimde yönetin.

DataStore, birbiriyle aynı container alanını paylaşan Site ve iPanel projelerinin Storage/Data altındaki JSON verilerini tek sözleşmeyle yönetir. Dosyalar gerçek veri kaynağıdır; önbellek yalnızca tekrar eden okumaları azaltır.

Kapsam: DataStore, KUT çekirdeğindeki PHP tabanlı Config sınıfının yerine geçmez. Config, Projects/.../Config ve Settings yapılandırmalarını; DataStore ise uygulamanın çalışma sırasında değiştirebildiği JSON verilerini yönetir.

Ayar okuma

$general = DataStore::get('settings_general');
echo $general->title;

$routes = DataStore::get('settings_routes', true);
echo $routes['home'];

İkinci parametre true olduğunda ilişkisel dizi, varsayılan kullanımda nesne döner. Dosya bulunamazsa veya dosya adı güvenli değilse sonuç false olur.

Ayar yazma

$general = DataStore::get('settings_general', true);
$general['title'] = 'Yeni Başlık';

if(! DataStore::set('settings_general', $general))
{
    throw new RuntimeException('Ayar kaydedilemedi.');
}

set() JSON dosyasını tamamen yeniler. Başarılı yazımdan sonra istek içindeki değer güncellenir ve aynı container'ı kullanan projelerin ortak ayar önbelleği geçersizleştirilir.

Ayar paketini yükleme

$settings = DataStore::bundle([
    'settings_general',
    'settings_language',
    'settings_theme',
    'settings_smtp'
]);

echo $settings->general->title;
echo $settings->theme->name;

bundle(), verilen dosyaları tek nesnede toplar ve settings_ önekini özellik adından kaldırır. Böylece settings_general verisine $settings->general ile erişilir. Kaynak parmak izi değiştiğinde dosya sonraki istekte yeniden okunur.

Varlık denetimi ve geçersizleştirme

if(DataStore::exists('settings_api'))
{
    $api = DataStore::get('settings_api');
}

DataStore::forget('settings_api');
DataStore::forget();

forget(), dosyayı silmez. İstek içindeki değeri unutur ve ortak ayar cache sürümünü yeniler. Normal yazma akışında ayrıca çağrılması gerekmez; set() bunu otomatik yapar.

Güvenlik ve veri tutarlılığı

  • Dosya adı bir yol değildir; /, \, .. ve null byte kabul edilmez.
  • Ayar önbelleği bozulursa dosya gerçek kaynak olarak kullanılmaya devam eder.
  • Parola, API anahtarı veya erişim belirteci içeren Storage/Data dosyalarını public depoya eklemeyin.
  • Aynı ayar dosyasını doğrudan File::write() ile değiştirmek yerine DataStore::set() kullanın.
KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.