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.
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/Datadosyalarını public depoya eklemeyin. - Aynı ayar dosyasını doğrudan
File::write()ile değiştirmek yerineDataStore::set()kullanın.