Bir dizi aracılığıyla sınıf seçeneklerini tanımlamak için kötü bir uygulama mı?

0 Cevap php

Biz seçenekleri sık sık bu gibi bir dizi aracılığıyla tanımlanmış olduğunu görmek vb Dojo, Mootools, jQuery, Prototype JS gibi Javascript çerçeveler bir göz attığımızda:

dosomething('mainsetting',{duration:3,allowothers:true,astring:'hello'});

Bir PHP sınıfı yazarken aynı fikri uygulamak için kötü bir uygulama mı?

An example:

class Hello {

    private $message = '';
    private $person = '';


    public function __construct($options) {

        if(isset($options['message'])) $this->message = $message;
        if(isset($options['person'])) $this->person = $person;
    }


    public function talk() {

        echo $this->person . ' says: ' . $this->message;
    }
}

The regular approach:

class Hello {

    private $message = '';
    private $person = '';


    public function __construct() {}


    public function setmessage($message) {

        $this->message = $message;
    }


    public function setperson($person) {

        $this->person = $person;
    }


    public function talk() {

        echo $this->person . ' says: ' . $this->message;
    }
}

İlk örnekte avantajı istediğiniz ve sınıf sadece ihtiyacı olanlar çıkartacaktır olduğu kadar çok seçenek geçmek olabilir.

JSON dosyasından seçeneklerini ayıklanması Örneğin, bu kullanışlı olabilir:

$options = json_decode($options);
$hello = new Hello($options);

Bu benim bu düzgün yapmak nasıl:

$options = json_decode($options);
$hello = new Hello();

if(isset($options['message'])) $hello->setmessage($options['message']);
if(isset($options['person'])) $hello->setperson($options['person']);

Bu model için bir isim var mı ve bu kötü bir uygulama olduğunu düşünüyorsunuz?

I have left validation etc. in the examples to keep it simple.

0 Cevap