Memcache sunucusuyla etkileşimde bulunmak için bir sınıfım var. Veri eklemek, silmek ve almak için farklı işlevlerim var. Başlangıçta her işlevi üç Memcache'ı bağlantılarını yapacak gereksiz ancak memcache_connect()
bir çağrı, ör .:PHP'de işlevler arasında globals kullanmadan paylaşım değişkenleri
mc->insert()
mc->get()
mc->delete()
yaptı. Ders için bir yapı oluşturarak çalıştı: o
function __construct() {
$this->mem = memcache_connect(...);
}
ve kaynak gerekli yerde $this->mem
kullanılarak, bu üç işlevin her biri aynı memcache_connect
kaynak kullanımı.
Bu Sonra yine iki memcache_connect
çağrıları yapıyor .: ör diğer sınıflar içindeki sınıf
class abc
{
function __construct() {
$this->mc = new cache_class;
}
}
class def
{
function __construct() {
$this->mc = new cache_class;
}
}
diyoruz ancak eğer tamam olduğunda yalnızca ihtiyacı biri.
Bunu globals ile yapabilirim ama eğer yapmam gerekirse bunları kullanmamayı tercih ederim.
Örnek globaller uygulaması:
$resource = memcache_connect(...);
class cache_class
{
function insert() {
global $resource;
memcache_set($resource , ...);
}
function get() {
global $resource;
return memcache_get($resource , ...);
}
}
Sonra sınıf olarak adlandırılır kaç kez olursa olsun sadece memcache_connect
bir çağrı olacaktır.
Bunu yapmanın bir yolu var mı yoksa sadece globals kullanmalı mıyım? MC örneğinde
Bu makul bir çözümdür, ancak bununla yüzleşelim, bu bir küreseldir. :) – cletus
Yapacağım bu. Bunu test edemezsin, ama dürüst olalım, bu tür şeyleri kim test ediyor? –
Sorunun, küçük bir parçanın test edilememesi durumunda, tüm kodun geri kalanının nasıl test edilebileceğidir. Veya diğer testler için simüle edilmiş bir MemCache nesnesini nasıl uygularsınız? – okoman