Hallo,

Wat is jullie "criterium" om iets als class-property in te stellen?
Stel je hebt in class foobar de variabele $x nodig. Deze variabele bevat best veel data. Nu heb ik een situatie waarbij ik dit had gedaan.

<?php

class Foo {

private $x;

public function __construct($x) {
$this->x = $x;
}

public function doeIets() {
$foobar = new Foobar($this->x);
$foobar->doeIets();
}

}

class Foobar {

private $x;

public function __construct($x) {
$this->x = $x;
}

public function doeIets() {
$x = $this->x;
// doe iets met $x
}

}

$x = array($heleboel_data);
$foo = new Foo($x);
$foo->doeIets();

?>
Zoals je kunt zien sla ik $x nu in 2 classes op als class-property.
En nu vraag ik me af, kan ik niet beter dit doen:

<?php

class Foo {

public function doeIets($x) {
$foobar = new Foobar();
$foobar->doeIets($x);
}

}

class Foobar {

public function doeIets($x) {
// doe iets met $x
}

}

$x = array($heleboel_data);
$foo = new Foo();
$foo->doeIets($x);

?>
Wat vinden jullie?
Ligt er aan wat x is. Als het iets specifieks voor die method is (bijv. een query in een db class), dan geef je hem aan de method mee, anders aan de constructor of via een setter (bijv. voor de connectie van een db class). Dit had je zelf ook wel kunnen bedenken toch?
>> Dit had je zelf ook wel kunnen bedenken toch?

Ja, eigenlijk wel. Het geval wil, die method heeft 'm wel nodig. Maar eigenlijk hoort het niet bij die method, maar bij de class. Je moet die $x namelijk niet meer kunnen veranderen, en als ik 'm meegeef aan de method kan dat wel. Ik moet het dus gewoon bij de constructor houden, maar omdat ik dezelfde property meerdere keren aan het opslaan was ging ik even twijfelen..

Reageren