eburhan Cache class
Birçok durumda ya lokaldeki ya da uzaktaki bir kaynaktan (veritabanı, web servisi gibi) kendi web sayfamız içerisine büyük miktarda veriler çekeriz. Fakat her istekte bu veri çekme işlemini tekrarlamak web sayfamızı yavaşlatabilir. Peki bu durumda ne yapabiliriz?
Böyle durumlarda çoğunlukla şu adımlar izlenir:
- normal bir şekilde verileri çek
- çekilen verilerin bir kopyasını daha hızlı erişebileceğimiz yere kaydet (önbellek)
- belli bir süre doluncaya kadar verileri bu önbellek denilen yerden çek
- süre dolduğunda tekrar 1. adıma dön
Karışık gibi görünen ama aslında kolay olan bu döngüyü eburhan Cache class ile çok daha kolay bir şekilde yapabilirsiniz. Bu sınıf Apc, Eaccelerator, Xcache, File, Memcache veya Sqlite gibi en çok bilinen önbellek adaptörlerinden istediğiniz herhangi birisiyle çalışabilir. Kullanımı basittir. PHP 5.1+ gerektirir.
Örnek kullanımı
<?php
require_once 'class/Cache.php';
// file adaptörüne özgü ayarlar
$confs = array(
'maxTime' => 5000,
'keyFunc' => 'md5',
'dirPath' => './log/',
'fileExt' => '.cache'
);
// sınıfı kullanıma hazırla
$cache = Cache::factory('file', $confs);
// önbellekte veri var mı yok mu?
if( $cache->is_set('veri') ){
$veri = $cache->get('veri');
} else {
$veri = file_get_contents('http://www.google.com.tr/');
$cache->set('veri', $veri);
}
// veriyi ekrana yazdır
echo $veri;
?>
Download & Dökümantasyon
eburhan Cache class isimli bu php sınıfını eBurhan Araçları sayfasından bilgisayarınıza indirebilirsiniz. İçerisinde sınıfı ayrıntılı anlatan bir döküman yer almaktadır (aşağıdaki resimdeki gibi). Yine de sormak istediğiniz veya eklemek istediğiniz birşey olursa buraya yorum olarak yazabilirsiniz. Faydalı olması dileyiğle















Merhaba; Php ile ilgileniyorum bu aralar. Yazılarınız gerçekten çokfaydalı. Çok teşekkürederim.
Sormak istedigim asp.net de Cache yaparken bir sayfada isedigimiz yei Cache alabiliyoruz ve sayfanın bazı yerlerini dinamik bazı yerlerini Cache den getirebiliyoruz. Php de bunu yapmak mümkün mü?
Teşekkürler Erhan abi.
@Bülent
php ile sayfanın herhangi yerini önbelleğe alabilirsiniz. bunun için ob_start() ile önbelleğe alınacak bölümün başlangıcını belirtiyoruz. Bölüm sonunda ise ob_get_contents() ve ob_end_clean() fonksiyonlarını kullanarak işlemi bitiyoruz. Örnek:
Artık $data değişkenini Cache sınıfına göndererek önbeleğe alınmasını sağlayabilirsin.
İllaki beni OOP’a bulaştıracaksın. (: Ellerinize sağlık.
cache sistemiyle ilgilenmeye baslamıstım güzel bir dokuman oldu teşekkurler
Teşekkurler güzel bir class sanırım en yakın sürede inceliyorum
Bu güzel çalışmanız başarınızı kanıtlıyor.
Smarty kullanmadığımız scriptlerde işimize yarayacak bir sınıf olmuş.
Teşekkürler…
Önbellek neresi. Nerde tutuluyor veriler. PHP ile o tutulduğu yere nasıl yerleştiriyorsunuz verileri
@Osman
döküman‘da yazıyor verilerin nerede tutulduğu.
Döküman bu mantığı gayet açıklayıcı nitelikte olmuş. Soru sormaya gerek bile kalmıyor
Ellerinize sağlık, teşekkürler.