Sihirli PHP __set ve __get metotları

2

Tarih : 18-11-2009 | Yazan : Hüseyin Bora | Kategori : PHP, Yazılım Mimarileri

Bu makalede PHP de edindiğim bazı kolaylık ve deneyimleri aktarmaya çalışacağım
Profesyonel PHP programcılarının çoğu farklı bir dil üzerinde çalışıp PHP ye geçmiş kişiler olarak nitelendirdiğimizde örneğin Java, C# olabilir PHP yine de bu diller gibi düşünmeye başlar hâlbuki PHP tam anlamıyla bir betik dilidir ve benzer neyse yönelimli dillerden ayıran belirgin özellikleri vardır.

Ben ve çalışma arkadaşlarımın PHP üzerinde nesne yönelimli projeler geliştirirken ilk başlardaki PHP üzerindeki acemiliğimizden dolayı bir takım kodları Java da ya C# da yazarcasına geliştirmişiz. Bu günde pek çok PHP programcısının benzer hatalara düştüğünü görüyorum.

PHP’nin NYP yapısı diğer NYP dillerden ayrılan ve programcının işini kolaylaştıran bir yapıya sahip.
Örneğin NYP temellerinden Kılıflama(Encapsulation) bu prensip Java da Set ve Get metotları C# da ise set ve get propertyleri yazılarak gerçekleştirilir. PHP de de Set ve Get yaklaşımı kabul edilebilirse de bu konuda PHP de __get ___set isimlerinde iki sihirli metot tanımlanmıştır. Örneğin bir sınıfın içerisinde 5 adet private üye olsun Get ve Set metotlarını kullanmak istersek sadece Get ve Set için sınıfımız da 10 adet metot bulunması gerekir. PHP nin sihirli metotları ile bu iş basit 2 metot içerisinde halledilebilir.

Örnek

Class urun
{

private $id,$name,$prince,$paytyep,$order;

public function __set($n,$v)
{
$this->$n=$v;
}

public function __get($n)
{

return $this->$n;
}
}

Örnekte de görülebileceği gibi 10 metot ile yapılacak bu iş iki sihirli metot sayesinde basit ve sistem kaynaklarını daha verimli kullanır bir şekilde tasarlanmıştır.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)

Facebook yorumları:

Yorumlar (2)

Şimdi hocam sen işi bildiğin için bilenin anlayacağı tarzda yorumlar yazmışsın google arama sayfalarını boşuna dolduran hiç öğretici olmayan bir makale ben php öğreniyorum ve şimdiki konum bu…

usta için uygun olan çırak için uygun değildir. burda bişey öğretmiyoruz sen öğrenmeye yanlış biyerden başlamışsın.

Yorum yaz