Ik had onlangs een discussie over het volgende, en ben eigenlijk wel benieuwd naar meningen van anderen.
Wij gebruiken CodeIgniter als framework voor onze PHP applicatie. Hierin heb je direct al scheiding van models, views en controlllers.
Nu is het zo dat ik binnen model X public properties nodig heb van model Y. Beide models worden via de controller ingeladen aangezien ik ze sowieso toch beide nodig heb. Dat kun je dan op verschillende manieren aanvliegen.
Methode 1:
Methode 2:
Natuurlijk doet $modelX->baz() meer dan een variabele returnen, maar dat terzijde. Punt is dat de public properties uit modelY op diverse plaatsen in andere models gebruikt worden.
De vraag is nu: wat is 'beter'? Methode 1 scheidt duidelijker de models van elkaar en laat de communicatie tussen beide geheel door de controller lopen. Methode 2 is echter efficiënter omdat het een variabele scheelt in het geheugen en gewoon minder code vraagt (als is dat marginaal natuurlijk).
Wij gebruiken CodeIgniter als framework voor onze PHP applicatie. Hierin heb je direct al scheiding van models, views en controlllers.
Nu is het zo dat ik binnen model X public properties nodig heb van model Y. Beide models worden via de controller ingeladen aangezien ik ze sowieso toch beide nodig heb. Dat kun je dan op verschillende manieren aanvliegen.
Methode 1:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| <?php // Controller $foo = $this->modelY->foo; $bar = $this->modelX->baz($foo); // modelX public function baz($foo) { return $foo; } ?> |
Methode 2:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| <?php // Controller $bar = $this->modelX->baz(); // modelX public function baz() { return $this->modelY->foo; } ?> |
Natuurlijk doet $modelX->baz() meer dan een variabele returnen, maar dat terzijde. Punt is dat de public properties uit modelY op diverse plaatsen in andere models gebruikt worden.
De vraag is nu: wat is 'beter'? Methode 1 scheidt duidelijker de models van elkaar en laat de communicatie tussen beide geheel door de controller lopen. Methode 2 is echter efficiënter omdat het een variabele scheelt in het geheugen en gewoon minder code vraagt (als is dat marginaal natuurlijk).
Tjolk is lekker. overal en altijd.