Ben bir önbellek sınıfının üzerinde çalışıyorum, ben 5 farklı depolama ortamlar önbelleğe öğeleri ayarlamak ve almak mümkün olmak istiyorum. Memcache, APC önbelleği, dosya önbellek, oturumlar, kurabiye. Belki de bir 6. (veritabanı 6 olarak ilave edilebilir).
Amacım çok kolay (taşınabilir) birçok proje üzerinde ileride kullanabilirsiniz yeterince bu esnek hale getirmektir. Ben de her 1 set yöntemi ve 1 olsun yöntemini çağırarak cache öğeleri almak / ayarlamak mümkün olmak istiyorum.
Aşağıda bana bunu sağlayacak şimdiye kadar başlamış kodudur. Benim anahtar bloğunda Ben bu önbellek orada yazın veya başka bir yöntemi çağırmak zorunda, ya da her bir anahtar bloğu öğe bir completley yeni bir sınıf / nesne aramak zorunda için tüm kodu koymak gerekir emin değilim.
Ben bunu kendi sınıf dosyası her önbellek sistemi koyarsanız önbellek türlerinden sadece bir çift sayfada kullanılırsa, o zaman benim autolaoding için bu kadar kod yüklemeye gerek olmayacak düşünüyorum. Ben hala aşağıdaki kodu 6 farklı sınıf dosyaları yüklemek istiyorsunuz ya da sadece anahtar ihtiyaçları dosyalarını yüklemek istiyorum, benim sınıf dosyaları için autoloading kullanarak, ama emin değilim. Bir sayfa yalnızca oturumları önbelleği kullanır Örneğin, aşağıda benim anahtar, sadece bir seans sınıf dosyası yüklemek istiyorsunuz veya tüm dosyaları yüklemek otomatik PHP istiyorsunuz? Benim kod test etmek denemek için bir şey koyarsanız, o zaman kesinlikle tüm dosyaları yükleyecektir çünkü test etmek zordur.
Bana tavsiye vermek ve ben bir çerçeve kullanmak istemiyorsanız, lütfen varolan çerçeve kullanmak değil öğrenmek için çalışıyorum.
/**
* Set a key/value to cache system.
*
* @param string type of cache to store with
* @param string|array keys, or array of values
* @param mixed value (if keys is not an array)
* @return void
*/
public function set($type, $keys, $value = FALSE, $options_arr)
{
if (empty($keys))
return FALSE;
if ( ! is_array($keys))
{
$keys = array($keys => $val);
}
// Pick our Cache system to use
switch ($type) {
case "memcache":
echo "Cache item to memcache";
break;
case "apc":
echo "Cache item to APC";
break;
case "session":
echo "Cache item to Sessions";
foreach ($keys as $key => $val)
{
// Set the key
$_SESSION[$key] = $val;
}
break;
case "cookie":
echo "Cache item to Cookie";
break;
case "file":
echo "Cache item to File";
break;
}
}