çalıştığm bir projede 2 kişi olarak, cache mantığının nasıl çalışması üzerine araştırmalar yapıyorduk.
Derken bu php classını yazıverdim.
http://sourceforge.net/projects/emcache/
Genel olarak bu class, diğer cachelerdeki gibi herhangi bir dosyaya serialize edip yazmıyor. Bu cache’in mantığı bir php dosyası oluşturup, sanki kodu elle yazmış gibi, kodu oraya kendisinin yazması. Böylece Object olmayan tipler için serialize-unserialize maliyetinden de kurtarılmış olunuyor.
Birkaç değişkeni bir grupta toplayıp, cache dosyası sayısındaki artıştan, ve gruplamanın getirilerinden faydalanılabilir.
2-3 tane arrayiniz var ise ve bunlar çalışan kodunuzda genel olarak hep aynı anda çağrılması (oluşturulması) gerekiyorsa, burada grup özellikleri işinizi kolaylaştıracaktır. Kullanım olarak da çok bir farkı yoktur.
Genel olarak
$emc = new EmCache("path_to_my_cache_directory"); //simple caching if(!$var = $emc->load("name_of_my_data")){ $emc->save($var,"name_of_my_data"); } //group caching $commit=false; if(!$var2 = $emc->loadFromGroup("name_of_my_data")){ $emc->collect($var2,"name_of_my_data"); $commit=true; } if(!$var3 = $emc->loadFromGroup("another_name_of_my_data")){ $emc->collect($var3,"another_name_of_my_data"); $commit=true; } if($commit){ $emc->commitGroup(); }