Ön Bellekleme Kütüphanesi


    × Bunları biliyor muydunuz?
"Konsoldan 'php zerocore create-grand-vision' gibi basit bir komutla tüm veritabanı ve tablolarının model dosyasını oluşturabilirsiniz."


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, apc, apcu, memcache, wincache, 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.
Apc Sisteme kurulum gerektirir. Apc Kılavuz.
Memcache Sisteme kurulum gerektirir. Memcache Kılavuz.
Wincache Sisteme kurulum gerektirir. Wincache Kılavuz.
Redis Sisteme kurulum 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)
Array getMetaData(String $key)
This driver(String $driver)

 

 

# Insert (ZN >= 1.0.0)


Ö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 (ZN >= 1.0.0)


Ö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 (ZN >= 5.3.31)


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 (ZN >= 5.3.31)


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 (ZN >= 5.3.31)


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 (ZN >= 1.0.0)


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 (ZN >= 1.0.0)


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 (ZN >= 1.0.0)


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

Parametreler

String $key Veri anahtarı.
Return Bool

Kullanımı

Cache::delete('example');

 

 

# Clean (ZN >= 1.0.0)


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

Parametreler

Void
Return Bool

Kullanımı

Cache::clean();

 

 

# Info (ZN >= 1.0.0)


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 ),

 

 

# GetMetaData (ZN >= 1.0.0)


Oluşturulan veri hakkında hakkında bilgi almak için.

Parametreler

String $key Veri anahtarı.
Return Array

Kullanımı

Cache::getMetaData('example');
expire => integer 1472203618 ( length = 10 ),
mtime  => integer 1472203498 ( length = 10 ),

 

 

# Driver (ZN >= 2.0.0)


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('apc')->insert('example', 'Example Data'); 
Cache::driver('memcache')->insert('nesne', 'Example Data');