Ich habe eine Klasse namens Items, bei Instanziierung sollte die Klasse 5+ Werte erhalten. Ich weiß, dass die Übergabe von mehr als (3-4) Variablen an den Konstruktor ein schlechtes Design anzeigt.Übergeben von Werten an den Klassenkonstruktor (Variablen vs Array)
Was ist die beste Methode, um diese Anzahl von Variablen an Konstruktoren zu übergeben?
Meine erste Option:
class Items {
protected $name;
protected $description;
protected $price;
protected $photo;
protected $type;
public function __construct($name, $description, $price, $photo, $type)
{
$this->name = $name;
$this->description = $description;
$this->price = $price;
$this->photo = $photo;
$this->type = $type;
}
public function name()
{
return $this->name;
}
und die zweite Option:
class Items {
protected $attributes;
public function __construct(array $attributes)
{
$this->attributes = $attributes;
}
public function name()
{
return $this->attributes['name'];
}
}
Sie sollten eine gemischte Lösung verwenden. Übergeben Sie das Array an den Konstruktor. Im Konstruktor 'extrahieren' Sie dieses Array und weisen Sie Variablen einzeln zu. Extrahieren Sie die Referenz http://php.net/manual/en/function.extract.php –
Alles ok außer Methode 'name' in den' Items'. –