Ön Bellekleme Kütüphanesi
"URL::base() ve URL::site() kullanımları farklıdır. Özellikle varlık dosyalarına yol verilirken URL::base(), [a] etiketi ile köprü oluştururken URL::site() kullanılmalıdır."
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');
