PHP konsolide sınıf üyeleri

0 Cevap php

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?

0 Cevap