Ön Bellekleme Kütüphanesi
"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
Cache | ||
string | $driver = 'file' | Ön bellekleme işlemi için kullanılacak olan sürücü bilgisi. |
Seçenekler | file, apc, memcache, 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
# 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');
# 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.
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-functionformatı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: Ashe20 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);
# 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);
# 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();
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');