Birincisi, ben genellikle modifiye $ veya $ kirli mülkiyet burada en iyi çözüm olduğunu düşünüyorum.
Ama ben yazıyorum nedeni olacağını Yorumunuz oldu
belirleyiciler bir yeri vardır sıkıcı olmadığını
Eğer PHP5 kullanarak değil, merak ediyorum?
Eğer, bu __ seti () sihirli yöntemi mükemmel bir kullanımıdır. Olduğu gibi-hatta __ seti () yöntemi mevcut belirleyiciler çağırarak, onu kullanabilirsiniz.
Örneğin:
class some_concept
{
private $x = 1;
private $y = 2;
private $dirty = false;
// This represents your existing setter methods
function set_y($i)
{
$this->y = $i;
}
function __set($name, $value)
{
if ($value != $this->{$name}) $this->dirty = true;
return $this->{'set_' . $name}($value);
}
function __get($name)
{
return $this->{$name};
}
}
Ancak, tefrika dizeleri karşılaştırma senin fikrine bazı hak vardır. Serileştirme pahalı olabilir. Bu doğru.
Ama listenizde en doğru çözümdür. Kaydederek, geri 2'ye o ayarı, sonra, yukarıda nesnesi yükleme 0'a $ y ayarı düşünün. Bu kirli mi? Öyle söylüyorlar, ama gerçekte, o zaman yüklenmiş oldu aynı durumda bulunuyor.
Ben burada kullanmak istiyorum testi save () ne kadar pahalı olduğunu. Tasarruf vb çok pahalı bir API çağrısı, DB işlem ise, o zaman yük nesneyi serialize ve bunun bir md5 hash kaydetmek için gider değer olduğunu bulabilirsiniz.
Bir ikinci bir kısmını alacağını op, bir çok ikinci işlem kaydedebilirsiniz eğer, o zaman gerçekten buna değer olabilir.
Son olarak, Damien Katz bu konuda tam tersi bir görüş işaret etmek istiyorum. Katz CouchDB oluşturulan yetenekli geliştirici, ve şu anda MySQL için çalışıyor.
Onun Error Codes v Exceptions sonrası uzun ama bu konuda çok iyi bir okuma.
Bir özel durum atma bir Hata Kodu dönen yararları hakkında konuşurken iken başlar, o gerçekten çok sağlam bir yazılım yazmak için nasıl bahsediyoruz biter.
Öncelikle, o SQL İşlemleri olduğunu aynı şekilde atomik sınıfları oluşturmak için nasıl bahsediyor. Genel bir fikir onun devlet değiştirmek, bir nesnenin bir kopyasını yapmak ve sadece son aşamada, eğer başarılı olursa, size birincil nesne için kopya çıkışı takas yapmak varlık. Bu anlamlı geri alma özellikleri sağlar. Böyle bir model, güç olan bir uygulama haline şim için ise, bu is_modified soruna bir çözüm sağlar.