Ön Bellekleme Kütüphanesi


    × Bunları biliyor muydunuz?
"Başlangıç kontrolcüsü üzerinden $this nesnesini data olarak göndererek statik olmayan sınıflara ilgili data üzerinden erişebilirsiniz."


Bu kütüphane ön belleğe alma, kullanma, silme gibi işlemleri gerçekleştiren sınıftır. Ön bellekleme kütüphanesi 5 sürücüden oluşur. Bu sürücülerden ön tanımlı olarak file sürücüsü kullanılmaktadır. Diğer sürücüleri kullanılabilmesi için sisteme kurulması gerekmektedir.

 

 

# Kurulum


ZN dağıtımları için kurulum gerekmez.

↓ composer require znframework/package-cache

 

 

# Yapılandırma


Dosya: Config/Storage.php
Cache
string $driver = 'file' Ön bellekleme işlemi için kullanılacak olan sürücü bilgisi.
Seçenekler file, apcmemcache, redis
array $driverSettings = [] Sürücü türüne göre bağlantı ayarları dizisi.

 

 

# Ön Bellekleme Sürücüleri


File Ön tanımlıdır ve kurulum gerektirmez.
Memcache Memcached kurulumu gerektirir. Memcached Kılavuz.
Apc Apcu kurulumu gerekmektedir. Apcu Kılavuz.
Redis Redis kurulumu gerektirir. Redis Kılavuz.

 

 

# Yöntemler


mixed select(string $key, $compressed = false)
bool insert(string $key, mixed $var, scalar $time = 60, mixed $compressed = false)
string code(callable $function, scalar $time = 60, string $compress = 'gz')
string view(string $file, scalar $time = 60, string $compress = 'gz')
string file(string $file, scalar $time = 60, string $compress = 'gz', $type = 'something')
int increment(string $key, int $increment = 1)
int decrement(string $key, int $decrement = 1)
bool delete(string $key)
bool clean()
array info(mixed $info)
this driver(string $driver)

 

 

# Insert


Ön belleğe nesne almak için kullanılır.

Parametreler

string $key Veri anahtarı.
mixed $data Veri.
Scalar $time = 60 Kaç saniye tutulacağı. 5.3.37 sürümü itibariyle bu parametreye zaman ifadeleri yazılabilir. Örnek: 1 day, 10 month, 5 year
mixed $compressed = false Sıkıştırma yapılsın mı?
File Driver bz, gz, lzf, rar, zip, zlib
Other Driver true , false
return bool

Kullanımı

Cache::insert('example', 'Example Data', 120);

 

 

# Select


Ön belleğe alınan veriye ulaşmak için kullanılır. 

Parametreler

string $key Veri anahtarı.
return mixed

Kullanımı

echo Cache::select('example');
Example Data

 

 

# Code


Kod bloklarına ait çıktıları ön belleklemek için kullanılır. Bu yöntem kullanılırken oluşturulacak bellek dosyasının daha önce var olup olmadığının kontrolünün yapılmasına ihtiyaç yoktur. Bu kontrol yöntemin kendisi tarafından yapılmaktadır.

Parametreler

callable $function Ön belleklenecek kodlar.
Scalar $time = 60 Ön bellekleme süresi.
string $compress = 'gz' Sıkıştırma sürücüsü.
return string

Opsiyonel Yöntemler

this key(string $key) Bellek ismi.

Kullanımı

$cache = Cache::code(function()
{
    Import::view('contact');
}, '7 day');

echo $cache;

7 günlük süre boyunca contact görünümü bellek dosyasından yüklenir.

Key

Bu yöntem oluşan bellek dosyasını silmek istediğinizde o dosyaya erişmenizi sağlayan isim belirlemenizi ya da farklı isimle yeni bir bellek dosyası oluşturmanızı sağlar. Bu yöntemle isim belirtilmemis durumunda;

Dosya adı: code-{codeCount}-controller-function

formatında otomatik isim verilir.

Dosya: Home.wizard.php
@Cache::key('example')->code
({<
    @foreach( DB::usersResult() as $user )
        <b>Name:</b> {{ $user->name }} <br>
    @endforeach
>}, '20 second')
Name: Micheal
Name: John
Name: James
Name: Ashe

 20 saniye süre boyunca aynı çıktı görüntülendikten sonra kod tekrar çalıştırılır.

 

 

# View


Görünüm çıktılarını ön belleklemek için kullanılır.

Parametreler

string $viewName Views/ dizine ait bir dosya adı.
Scalar $time = 60 Ön bellekleme süresi.
string $compress = 'gz' Sıkıştırma sürücüsü.
return string

Kullanımı

echo Cache::view('contact/main', '2 month');

Veri Gönderimi

Data gönderimi için ->data() opsiyonel yönteminden yararlınır.

echo Cache::data(['example' => 'Example Data'])->view('contact/main');

Bellek Dosyasını Yeniden Oluşturma

Ön bellekteki veriyi yenilemek veya tazelemek için ->refresh() opsiyonel yönteminden yararlınır.

echo Cache::refresh()->data(['example' => 'Example Data'])->view('contact/main');

Bellek Dosyasını Silme

Oluşturulan bellek dosyasını silmek için Cache::view() yönteminin 1. parametresin verilen ismin slug karşılığı kullanılarak silinir.

Cache::delete('contact-main'); # contact/main -> contact-main

 

 

# File


Herhangi bir dosyanın çıktısını ön belleklemek için kullanılır.

Parametreler

string $fileName Dosya adı veya yolu
Scalar $time = 60 Ön bellekleme süresi.
string $compress = 'gz' Sıkıştırma sürücüsü.
return string

Kullanımı

echo Cache::file(VIEWS_DIR . 'contact/main', '1 day');

Yenileme ve data gönderim işlemleri bu yöntem içinde aynıdır.

 

 

# Increment 


Sayısal değer tutan bir verinin değerini belirlenen miktarda artırır. 2. parametre değiştirilmezse artış miktarı 1 kabul edilir.

Parametreler

string $key Bellek adı.
int $increment = 1 Artış miktarı.
return int

Kullanımı

echo Cache::increment(example);
1

 

 

# Decrement 


Sayısal değer tutan bir verinin değerini belirlenen miktarda azaltır. 2. parametre değiştirilmezse azalış miktarı 1 kabul edilir.

Parametreler

string $key Bellek adı.
int $decrement = 1 Azalış miktarı.
return int

Kullanımı

echo Cache::decrement(example);
0

 

 

# Delete


Ön bellekten nesne silmek için kullanılır.

Parametreler

string $key Veri anahtarı.
return bool

Kullanımı

Cache::delete('example');

 

 

# Clean


Tüm ön bellekteki verileri temizlemek için kullanılır.

Parametreler

void
return bool

Kullanımı

Cache::clean();

 

 

# Info


Tüm ön bellekteki verilerin tutulduğu dosya hakkında veri almak kullanılır.

Parametreler

string $key Veri anahtarı.
return array

Kullanımı

Cache::info();
basename   => string 'example' ( length = 9 ),
size       => integer 77 ( length = 2 ),
date       => integer 1472202339 ( length = 10 ),
readable   => boolean true ( length = 4 ),
writable   => boolean true ( length = 4 ),
executable => boolean false ( length = 5 ),
permission => integer 33206 ( length = 5 ),

 

 

# Driver


Farklı bir sürücü kullanmak için bu yönteme parametre olarak geçerli ön bellekleme sürücülerinden birinin ismi yazılır.

Parametreler

string $driver Sürücü adı.
return this

Kullanımı

Cache::driver('redis')->insert('example', 'Example Data'); 
Cache::driver('memcache')->insert('nesne', 'Example Data');