Sitemizde 29 Kategoriye 2398 Eğitim Eklenmiştir, 4172 adet yorum bulunmaktadır.

CodeIgniter Controller/Method adına göre cache gruplandırma

CodeIgniter Controller/Method adına göre cache gruplandırma

CodeIgniter Controller/Method adına göre cache gruplandırma


18 Mart 2012 ~ Php Sitesi — Orta Seviye Php Eğitimleri

CodeIgniter standart output cache yönteminde sadece bir parametre ile cache süresini belirtmemize izin veriyor ve tüm cache dosyaları tek bir klasörde tutuyor.

Çok uzun süreli cache alınması gereken, fakat güncel olan bir sisteminiz varsa, varsayılan output cache yöntemi bu iş için pek uygun olmuyor (Örneğin: haber, blog, video vb. sistemler). Çünkü parametrede verdiğiniz dakika boyunca cache tutuyor ve siz controller içerisinde cache süresini değiştirseniz de daha önceden alınan cache süresi bitene kadar gösteriyor. Ancak dosyayı silerseniz tekrar çalışıyor.

Bana göre böyle bir durumda olması gereken controller ve methodlarına göre ayrı ayrı klasörler içerisinde gruplandırılarak cache dosyaları oluşturulmasıydı. Ve bu olayı basit bir şekilde kendi çekirdek kütüphanemi oluşturarak yaptım.

Sonuç olarak:

adres: /haberler/detay/123
cache: /cache/haberler/detay/d27d9ff7f12cffdab381fe72a51cb306

adres: /videolar/izle/123
cache: /cache/videolar/izle/1665c19fd83abef189b1e7aa97c24c68

ya da router kullanarak:

router: $route['(:any)/(:any)'] = 'blog/yazi/$1/$2';
adres: /kategori/baslik => blog/yazi/kategori/baslik
cache: /cache/blog/yazi/8addac4687ec7a85ab8321f2df7fe180 

Bu sayede sadece istediğiniz bölümdeki içeriklerin cache dosyalarını silerek güncelleyip, diğer kısımların cache dosyalarının durmasını sağlayabilirsiniz.

Yöntemi uygulamak için buradaki MY_Output.php dosyasını indirip application/core dizininize göndermeniz yeterli.

Grupdan bir cache dosyası silme

Yukarıda bahsettiğim gruplandırma yöntemi ile toptan müdaheleyi kolaylaştırırken bu aşağıdaki helper ile tek tek işlem yapabilirsiniz. Şuradaki yazıda hazırlanmış delete_cache() helper fonksiyonunu benim hazırladığım alt klasörlü grup yöntemine göre yeniden düzenledim.

Örnek kullanımı:

// tek sayfa silmek
delete_cache(array('http://www.siteniz.com/kategori/baslik'), 'blog/yazi');

// birden fazla silmek
$pages = array(
   'http://www.siteniz.com/haberler/detay/123',
   'http://www.siteniz.com/haberler/detay/124',
   'http://www.siteniz.com/haberler/detay/125');
delete_cache($pages, 'haberler/detay');

Normal hazırlanmış cache helperdan tek farkı; bizim gruplandırma için oluşturduğumuz alt klasörleri ifade etmemiz için sonuna yazmamız gereken alt klasör yolu. Benim son olarak düzenlediğim ve bu grup olayı için olan cache helper dosyasına buradan ulaşabilirsiniz.

Bu yazıda hazırlamak istediğim yöntem diğer cache driverlarını (bkz: memcache, apc) kullanmadan tüm çıktıyı dosya olarak saklamak ve controller çağırdığında hiç bir şey yüklemeden direkt cache dosyasını açmasını isteyenler için idealdir. Yoksa diğer alternatif cache driverları ile istediğiniz bir değişkeni istediğiniz süre cache alabilir ve temizleyebilirsiniz.

Bir başka PHP serüveninde görüşmek üzer sağlıcakla kalın!

Etiketler: CodeIgniter codeigniter custom cache codeigniter delete cache codeigniter group cache


CodeIgniter Controller/Method adına göre cache gruplandırma

Daha Fazla Orta Seviye Php Eğitimleri Seviye PHP Eğitim Dersleri İçin Orta Seviye Php Eğitimleri Seviye PHP Eğitim Kategorisini İnceleyiniz…
#CodeIgniter #ControllerMethod #adına #göre #cache #gruplandırma

Van Web Tasarım

Tavsiye İçerik

Php de Function (Fonksiyon) Kullanımı – kodcafe.com

PHP array_chunk Fonksiyonu – phpsitesi.com

PHP array_chunk Fonksiyonu – phpsitesi.com array_chunk fonksiyonu, bir diziyi belli uzunlukta bölümlere ayırmak için kullanılır. Bu …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.