Ön Bellekleme Kütüphanesi
KUT uygulama önbelleğini File, Redis, Memcached veya APCu sürücüsüyle proje sınırları içinde yönetin.
This article is currently available in Turkish. Its English translation is being prepared.
Cache kütüphanesi, tekrar üretilmesi maliyetli uygulama verilerini ve çıktılarını belirli bir süre saklar. Wizard Rendering önbelleği bu paketten bağımsızdır; Storage/Renders derlenmiş görünümü, Cache paketi ise uygulamanın açıkça verdiği anahtar ve değerleri saklar.
Yapılandırma
Dosya: Config/Storage.php
'cache' =>
[
'driver' => 'file',
'prefix' => 'kut'
]
file, redis, memcache ve apc sürücüleri desteklenir. File sürücüsü verileri etkin projenin Storage/Cache dizininde tutar. Paylaşımlı sürücülerde anahtarlar otomatik olarak KUT öneki ve tam proje yolu ile ayrılır.
kut:OrunCP:Site:dashboard:totals
kut:OrunCP:iPanel:dashboard:totals
Değer ekleme ve okuma
Cache::insert('products:list', $products, '10 minutes');
$products = Cache::select('products:list');
Süre saniye olarak veya 10 minutes, 2 hours gibi okunabilir bir ifade olarak verilebilir. 0 süresi sürücünün desteklediği kalıcı kaydı ifade eder.
Anahtarın varlığını denetleme
Cache::insert('feature:enabled', false, '5 minutes');
if(Cache::has('feature:enabled'))
{
$enabled = Cache::select('feature:enabled'); // false
}
has(), kayıtlı değer false, 0, boş metin veya boş dizi olsa bile anahtarın gerçekten var olup olmadığını bildirir.
Varsa getir, yoksa üret
$products = Cache::remember(
'products:list:tr',
'10 minutes',
function()
{
return ProductsGrand::where('status', 'active')->get()->result();
}
);
remember() anahtar bulunduğunda kayıtlı değeri döndürür. Anahtar bulunmuyorsa callback bir kez çalıştırılır, sonuç belirtilen süreyle saklanır ve çağırana döndürülür. Değer false veya boş dizi olduğunda da sonraki çağrı önbellekten karşılanır.
remember(), aynı proje ve anahtar için resolver çalışmasını kilitler. File, Redis, Memcached ve APCu sürücülerinde aynı sunucudaki eşzamanlı isteklerden yalnızca biri pahalı callback'i çalıştırır; diğerleri üretilen kaydı okur.Silme ve sayaçlar
Cache::delete('products:list');
Cache::increment('rate:127.0.0.1', 1);
Cache::decrement('stock:reserved', 1);
File sürücüsü eşzamanlı yazma ve sayaç işlemlerini kilit altında yürütür. Yeni veri geçici dosyada tamamlandıktan sonra tek işlemle yayımlanır; başka bir istek yarım yazılmış kayıt okuyamaz.
File sürücüsünde anahtarlar doğrudan dosya adına dönüştürülmez. KUT, anahtarı sabit uzunlukta güvenli bir kimliğe çevirir; dizin ayırıcıları, üst dizin ifadeleri ve işletim sistemine özel karakterler Storage/Cache dışına taşamaz.
Proje-kapsamlı dosya biçiminin ilk çalışmasında eski, kapsamsız cache kayıtları kilit altında bir kez temizlenir. Bunlar uygulamanın kalıcı verisi değildir; gerekli değerler ilk isteklerde normal resolver akışıyla yeniden üretilir.
Çıktı önbelleği
$html = Cache::key('dashboard:cards:admin')
->code(function()
{
View::use('Dashboard/cards');
}, '2 minutes');
code() callback çıktısını, view() görünüm çıktısını, file() ise verilen dosyanın çıktısını önbelleğe alır. Kullanıcı, rol, dil veya sorgu sonucu çıktıyı değiştiriyorsa bu bağlamlar anahtara eklenmelidir.
Temizleme
Cache::clean();
php buyruk --project=OrunCP/Site cache:clear
Temizleme yalnızca etkin projenin Cache alanını hedefler. Aynı Redis, Memcached veya APCu hizmetini kullanan başka KUT projelerinin ya da farklı uygulamaların kayıtları silinmez.
Pusat'taki Araçlar → Önbellek ekranı seçili projenin sürücüsünü, kayıt sayısını ve yaklaşık boyutunu gösterir. Temizleme işlemi yalnızca ekranda seçili proje kapsamını hedefler; anahtarlar ve saklanan değerler arayüzde açıklanmaz.