Geçenlerde rastladım an article Matthew Weier O'Phinney buna benzer örnek kodunu içerir (ZF proje kurşun) ile:
class User
{
protected $_data = array(
'username' => null,
'email' => null,
'fullname' => '',
'role' => 'guest',
);
/* ... */
}
Ne geleneksel olarak dört farklı üye değişkenleri nasıl olacağını fark tek diziye konsolide edilir. Ben temiz kurucusuna (tek parametre) fayda görebilirsiniz, ancak ben IDE $_data
dizisinde çok iyi otomatik tamamlama yapmak mümkün olacaktır şüphesiz.
Aklıma bir alternatifi tek bir parametre and dört üyesi ile bir kurucuya sahip sihirli yöntemleri kullanmaktır.
class User
{
protected $_username = null;
protected $_email = null;
protected $_fullname = '';
protected $_role = 'guest';
public function __construct($data)
{
foreach ($data as $key => $value) {
$this->$key = $value;
}
}
public function __set($name, $value) {
$member = "_$name";
$this->$member = $value;
}
}
seems Daha iyi kod ikinci blok ... ancak ben Sayın O'Phinney daha iyi kod yazabilirsiniz şüpheliyim. Hala kurucusuna temiz bir arayüze tutarken sınıf üyelerini işlemek için en iyi yolu nedir?