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.