Cache (Ön Bellek) Kütüphanesi

Cache kütüphanesi, istenilen verilerin önbelleğe alınmasını ve belirlenen süre boyunca önbellekten okunmasını sağlar. Bu sayede sunucunun yüksek kaynak harcamasının önüne geçilir ve performans artar.

  1. Cache Ayarları
  2. Cache Dosyasını Belirleme » setFileName()
  3. Cache Verisi Oluşturma » save()
  4. Cache Verisi Okuma » read()
  5. Cache Verisi Kontrolü » isCached()
  6. Cache Verisi Silme » delete()
  7. Cache Verilerini Boşaltma » clear()
  8. Cache Kullanım Örneği

Cache Ayarları

Cache kütüphanesi ile ilgili ayarlar, /App/Config dizini içerisindeki App.php dosyasında bulunur. Dosya içerisinde return edilen dizi değişkendeki cache anahtarına ait değerler, cache kütüphanesine aittir.

//--- [*] App/Config/App.php ---//
'cache'			=> [
	'path'		=> 'Storage/Cache', // Cache dosyalarının kaydedileceği yer
	'extension'	=> '.cache', // Cache dosyalarının uzantısı
	'expire'	=> 604800, // Cache'lenen verinin ön bellekte tutulacağı süre (sn cinsinden)
],

Cache Dosyasını Belirleme

Bir veri cache'e yazıldığında, otomatik olarak bir dosya oluşturulur ve cache verisi buraya yazılır. Fakat istenen durumlarda cache verisi oluşturulmadan önce verilerin kaydedileceği dosya belirlenebilir. Bunun için setFileName() methodu kullanılır. Oluşturulacak dosya ismi parametre olarak verilir. Sistem bu ismi şifreleyerek bir dosya oluşturur.

Parametre Veri Tipi Açıklama
$file String Cache verisi yazılacak dosya ismi
Cache::setFileName('dosya_adi');

Cache Verisi Oluşturma

Cache verisi oluşturmak için save() methodu kullanılır. Aşağıdaki tabloda görüldüğü gibi ikisi zorunlu olmak üzere üç parametre alır;

Parametre Veri Tipi Açıklama
$key String Cache anahtarı
$value Mixed Cache verisi
$time Integer Cache süresi
// value değerini, key anahtarı ile, varsayılan süre boyunca önbelleğe alır.
Cache::save('key', 'value');

// value değerini, key anahtarı ile 1 saat boyunca önbelleğe alır.
Cache::save('key', 'value', 3600);

Cache Verisi Okuma

Oluşturulan cache verilerini okumak için read() methodu kullanılır. Okunacak cache verisine ait anahtar adı ve tanımlanmışsa eğer kaydedilen dosya adı parametre olarak verilir.

Parametre Veri Tipi Açıklama
$key String Cache anahtarı
$filename String Dosya adı (Varsayılan: null)
// key anahtarı ile tanımlanan cache verisini döndürür
Cache::read('key');

// 'articles' dosyasında key anahtarı ile tanımlanan cache verisini döndürür
Cache::read('key', 'articles');

Cache Verisi Kontrolü

Belirtilen anahtar ile oluşturulmuş cache verisi olup olmadığını öğrenmek için isCached() methodu kullanılır. Kontrol edilecek cache verisinin anahtarını parametre olarak alır. Eğer cache verisi var ise true, yok ise false değer döndürür.

Parametre Veri Tipi Açıklama
$key String Cache anahtarı
Cache::isCached('key'); // key anahtarı ile bir cache verisi olup olmadığını kontrol eder

Cache Verisi Silme

Belirtilen anahtar ile oluşturulmuş cache verisini silmek için delete() methodu kullanılır. Silinecek cache verisinin anahtarını parametre olarak alır.

Parametre Veri Tipi Açıklama
$key String Cache anahtarı
Cache::delete('key'); // key anahtarı ile oluşturulmuş cache verisini siler

Cache Verilerini Boşaltma

Oluşturulan tüm cache verilerini silmek için clear() methodu kullanılır.

Cache::clear();

Cache Kullanım Örneği

Bir controller içinde cache kütüphanesinin kullanımı aşağıdaki örnekte görülebilir;

//--- [*] /App/Controllers/Home.php ---//
namespace App\Controllers;

use Cache;

class Home
{
    public function index()
    {        
        if(Cache::isCached('haber_cache')) {
            $haberler = Cache::read('haber_cache');
        } else {
            $haberler = [
                0 => [
                    'haber_id'    => 1,
                    'kategori_id' => 3,
                    'baslik'      => 'Haber basligi',
                    'icerik'      => 'Haber icerigi'
                ],
                1 => [
                    'haber_id'    => 2,
                    'kategori_id' => 3,
                    'baslik'      => 'Diğer Haber basligi',
                    'icerik'      => 'Diğer Haber icerigi'
                ]
            ];
            Cache::save('haber_cache', $haberler, 86400); // haberler dizisi 24 saatliğine önbelleğe alınıyor
        }
    }
}