Middels onderstaande class kan ik prima een treemenu kwijt vanuit mn db. Het voordeel van dit object dat ik middels een render functie op verschillende plekken op verschillende manieren mn menu kan laten zien. Ik kan middels een renderfunctie de hele tree laten zien, maar ik kan ook uit het object halen waar je je op dat moment bevindt. Ik haal dus de parent van de parent van ... van de plek op waar ik me op dat moment bevindt. De reden dat ik dus voor dit object heb gekozen is dat ik op verschillende manieren informatie uit dezelfde bron kan halen op de door mij gewenste manier.
Nu zit ik met een vraag waarvan ik niet weet wat de beste methode is. Ik kan een los object / functie maken die een bepaald type menu voor me renderd of ik kan een render functie/methode binnen mn al bestaande class maken. Maar elk menuitem zal dus gebruik kunnen maken van die functie en dat wil ik ook weer niet. Zoals je misschien leest heb ik niet heel veel ervaring meet OOP; ik heb ooit wat op school moeten leren, maar dat is ver weggezakt en met de lectuur die ik daarvoor heb moeten aanschaffen kom ik er niet uit. Ligt de fout al bij het object TreeMenuItem? Is dat een rare manier van opslaan van een treemenu? Wie kan me een duwtje in de goede richting geven?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| class TreeMenuItem { private $url; private $title; private $children = array(); function SetMenuItemAttributes ($title, $url) { $this -> title = $title; $this -> url = $url; } function AddChild ($object) { array_push($this -> children, $object); } } $navigation = new TreeMenuItem(); $navigation -> SetMenuItemAttributes("uitklapper",""); $child1 = new TreeMenuItem(); $child1 -> SetMenuItemAttributes("a","a.html"); $navigation -> AddChild($child1); $child1 = new TreeMenuItem(); $child1 -> SetMenuItemAttributes("a","b.html"); $navigation -> AddChild($child1); |
Nu zit ik met een vraag waarvan ik niet weet wat de beste methode is. Ik kan een los object / functie maken die een bepaald type menu voor me renderd of ik kan een render functie/methode binnen mn al bestaande class maken. Maar elk menuitem zal dus gebruik kunnen maken van die functie en dat wil ik ook weer niet. Zoals je misschien leest heb ik niet heel veel ervaring meet OOP; ik heb ooit wat op school moeten leren, maar dat is ver weggezakt en met de lectuur die ik daarvoor heb moeten aanschaffen kom ik er niet uit. Ligt de fout al bij het object TreeMenuItem? Is dat een rare manier van opslaan van een treemenu? Wie kan me een duwtje in de goede richting geven?