Merhaba arkadaşlar. Bu yazımda kısaca XCache ‘ye değineceğim. Xcache nedir diyecek olur isek kısaca kod cacher diyebiliriz. Biraz daha açar isek örneğin bir sql sorgusu sonucunda dönen kayıtları cache alıyoruz. Aynı sorgu tekrarlandığında önce XCache ye bakıyoruz eğer daha önceden alınmış ise bilgileri XCache den çekiyoruz. Değil ise XCache ye set edip belli bir süre tabi bu isteğe bağlı olarak cachelenmesini sağlıyoruz. Bunun bize ne gibi bir faydası olacak derseniz eğer örneğin tekrar tekrar aynı bilgi için mysql e sorgu yapmaktan kurtulabilirsiniz. Tabi ben mysqlden örnek veriyorum illaki mysql kayıtlarını cacheleyecek diye bir kaidemiz yok herhangi bir dizi array da olabilir.Önce XCacheyi kurmamız gerekmektedir. Windows kullanan kullanıcılar şu adresi ziyaret edebilirler kurulum için. Linux kullananlar ise burayatıklayarak XCache kurulumunu yapabilirler.Evet XCache kurulumunu yaptığınızı varsayarak nasıl cache yapabiliriz birer örnekle açıklık getirelim ve yazımızı bitirelim. Ben test için bir isimler tablosu ( ad, soyad, sehir ) oluşturdum ve bir kaç tane isim ekledim.XCache için öncelikle sınıfı paylaşayım. Ben XCache işlemlerinde bu sınıfı kullanacağım.xcache.php:‘;foreach(self::$getMsg AS $value){echo ‘

  • ‘.$value.’
  • ‘;
    }echo ‘

    ‘;
    }}?> Yukarıdaki yayınladğımız sınıfımıza kısa bir göz atar isek beş adet metottan oluşmakta. Bu metotlar hakkında kısa bir bilgi de verelim hemenXCache Sınıfı* x_isset($name) metodu $name adında daha önceden cachlenmiş bir veri var mı diye bakar true veya false döner* x_set($name,$data,$time) metodu ile cache edilecek veriyi bildiriyoruz. $name ile hangi cache isminde saklanacağını söylüyoruz. $time değişkeninde ise eğer süre tanımlayacaksak örneğin verimizin iki dakika boyunca cachelenmesini istiyorsak 120 yazıyoruz eğer saniye belirtmek istemiyorsak NULL diyerek geçiyoruz* x_unset($name) metoduyla ise cache edilmiş bir veri veriyi yok ediyoruz* x_get($name) ile $name ile bildirilen cache verisi mevcut ise cachelenmiş veriyi çekiyoruz.* getHata() ile de herhangi bir hata oluştuğunda ekrana hata çıktısını yazdırıyoruzEvet sınıfımız bu kadar şimdi gelin veritabanından okunan bir dizi arrayı cache edelim. Yine hatırlatmadan geçmeyeyim ben veritabanında bir isimler tablosu oluşturdum ve onu kullanacağım. Siz herhangi bir veriyi de cacheleyebilirsiniz.xcache_cache.phpquery(“SELECT * FROM isimler ORDER BY id”);# İsimleri Bir Dizi Arrayda Toplayalımwhile ($rows = $query->fetch_array()){$data[‘ad’][] = $rows[‘ad’];$data[‘soyad’][] = $rows[‘soyad’];$data[‘sehir’][] = $rows[‘sehir’];}# Şimdi $data Dizimizi Cacheleyelimif ($xcache->x_set(‘isimler_tablosu’,serialize($data),NULL)){echo ‘Bilgiler Cache Edildi
    ‘;echo ‘Cache Bilgileri Oku‘;
    }else{$xcache->getHata();}# Outbut Buffer Flushob_end_flush();?>
    Yukarıdaki dosyamızda ise öncelikle bir veritabanı bağlantısı yaptık. Daha sonrasında XCache sınıfımızı dahil edip sınıfımızı başlattık. Veritabanından alacağımız verileri saklamak için $data isminde bir array tanımladık. Ardından ise isimler tablosuna bir sorgu yaptık ve tüm kayıtları istedik devamında ise while ile döngüye girerek tüm kayıtları uygun bir formatta $data dizisine aktardık. Yine devamında sınıfımız sayesinde elde ettiğimiz $data arrayını XCache de isimler_tablosu ile 120 saniye boyunca cache edilmesini tanımladık ve bilgileri okuyacağımız sayfaya yönlendirdik. Cachelenmiş verinin XCache adminden bir görüntüsü aşağıdadır.

    xcache_bilgi_oku.phpx_isset(‘isimler_tablosu’)){$veri = unserialize($xcache->x_get(‘isimler_tablosu’));# Alınan Bilgileri Gösterelimprint_r($veri);}else{$xcache->getHata();}?> Şimdide gelelim en son dosyamızda yaptıklarımıza. Yine öncelikli iş olarak XCache işlemlerinde kullanacağımız sınıfı çalışma betiğimize dahil ettik ve sınıfımızı başlattık. Daha sonrasında ise sınıfımızın x_isset() metoduyla isimler_tablosu adında daha önceden cachelenmiş bir veri var mı diye kontrol ettik. Eğer metod bize true döndüyse cachedeki verileri $veri değişkenine aktardık ve print_r() fonksiyonu ile arrayı debug ettik. Metod eğer false dönseydi getHata() metodu işleme alınarak bize isimler_tablosu adında bir cachelenmiş veri olmadığını söylecekti.

    Basit bir şekilde Xcache kullanımını anlatmaya çalıştım. Umarım faydalı olabilmişimdir.Yusuf Koç.