Ben bu sayfayı okuyordum - http://www.hm2k.com/posts/50-php-optimisation-tips-revisited
Ve önerilerden biri de bunları önlemek için onun tavsiyesi için bir neden veren bir Zend Performans PDF gösterdi Sihirli Yöntemler, kullanmaktan kaçınmak oldu.
Bazı Google arama (ve alakasız bir soruya buraya kadar sarma) sonra herkes o ön herhangi bir reccomendations vardı merak ettim?
Ben genellikle hep kullanmayın değişkenleri kaydetmek için, benim kodunda __ get () sürü kullanın örneğin
Ben isim, açıklamaya, category_id, time_added bir tablo olabilir
Benim olsun bu gibi bir şey olacaktır:
public function __get($name) { switch($name) { case 'name': case 'desc': case 'category': case 'time_added': $result = do_mysql_query(); $this->name = $result['name']; $this->desc = $result['desc']; $this->category = $result['category']; $this->time_added = $result['time_added']; return $this->{$name}; break; default: throw Exception("Attempted to access non existant or private property - ".$name); } }
Bu gerekli eğer ben sadece hiç veritabanından bir şey olsun gibi şeyler yapmak için harika bir yol gibi görünüyor ve ben gibi şeyler refence olabilir $ makale-> oldukça dizileri ile ilgilenmek daha time_added.
Bu kötü uygulama ve sunucu üzerinde ekstra bir yük olarak düşünülebilir?
Genellikle ben sihirli yöntemler ile sınıfları genişletmek ve çocuk sınıfın get şey eşleşmiyor, böyle bir şey yapacağız.
public function __get($name) { switch($name) { case 'name': case 'desc': case 'category': case 'time_added': $result = do_mysql_query(); $this->name = $result['name']; $this->desc = $result['desc']; $this->category = $result['category']; $this->time_added = $result['time_added']; return $this->{$name}; break; default: return parent::__get($name); } }
Bu kötü uygulama ve performans için kötü olurdu? Sihirli yöntemleri uzanan zaman var düzeylerinin maksimum sayısı üçtür.