Cache Plugin

Cache plugini, 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.

Cache Ayarları

Cache plugini ile ilgili ayarlar /app/config dizini içerisindeki cache.php dosyasında bulunur.

return [
	// Cache dosyalarının barındırılacağı dizini belirtir
	'path'	=> 'cache',
	
	// Cache dosyalarının uzantısını belirtir
	'extension' => '.cache',
	
	// Cache dosyalarının varsayılan saklanma süresini belirtir. Varsayılan değer 1 haftadır.
	'default_expire_time' => 604800
];

Plugini Dahil Etmek

Cache plugini, controller içerisinde aşağıdaki şekilde uygulamaya dahil edilir;

$this->load->plugin('cache');

Cache Dosyasını Belirleme

Cache verisi oluşturmadan önce verilerin kaydedileceği dosya belirlenebilir. Bunun için set_cache() methodu kullanılır. Oluşturulacak dosya ismi parametre olarak verilir. Plugin, bu ismi şifreleyerek bir dosya oluşturur.

Parametre Veri Tipi
$dosya_adi String
// Örnek kullanım
$this->cache->set_cache('dosya_ismi');

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 alabilir.

Parametre Veri Tipi Açıklama
$key String Cache verisinin ismi
$value String Cache belleğe alınacak veri
$time Integer Cache süresi. Verilmezse, varsayılan olarak cache configdeki değeri alır.
// value değerini, key ismiyle, varsayılan süre boyunca önbelleğe alır.
$this->cache->save('key', 'value');

// value değerini, key ismiyle 1 saat boyunca önbelleğe alır.
$this->cache->save('key', 'value', 3600);

Cache Verisi Okuma

Oluşturulan cache verilerini okumak için read() methodu kullanılır. Okunacak cache verisinin ismi ve cache verisi kaydedilirken dosya ismi verilmiş ise, bu dosyanın ismi parametre olarak verilir.

Parametre Veri Tipi
$key String
$filename String (Varsayılan: null)
// Örnek kullanım
$this->cache->read('key'); // key ismiyle tanımlanan cache verisini döndürür

// 'articles' dosyasına kaydedilen cache verisini döndürür
$this->cache->read('key', 'articles');

Cache Verisi Kontrolü

Belirtilen isim ile oluşturulmuş cache verisi olup olmadığını öğrenmek için is_cached() methodu kullanılır. Kontrol edilecek cache verisinin ismini parametre olarak alır.

Parametre Veri Tipi
$key String
// Örnek kullanım
$this->cache->is_cached('key'); // key isminde bir cache verisi olup olmadığını kontrol eder

Cache Verisi Silme

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

Parametre Veri Tipi
$key String
// Örnek kullanım
$this->cache->delete('key'); // key ismi ile oluşturulmuş cache verisini siler

Tüm Cache Verilerini Silme

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

// Örnek kullanım
$this->cache->clear();

Cache Kullanımı Örneği

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

class Haberler extends Controller
{
    public function index()
    {
        $this->load->plugin('cache');
        
        if($this->cache->is_cached('haber_cache')) {
            $haberler = $this->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'
                ]
            ];
            $this->cache->save('haber_cache', $haberler, 86400); // haberler dizisi 24 saatliğine önbelleğe alınıyor
        }
    }
}