Hey,
Ik ben bezig met het verder ontwikkelen van mijn forum. Bijkomend effect is dat je je code verder abstraheerd. Nu sta ik op het punt om de indeling van bepaalde files om te gooien, en wil dit graag goed doen.
De situatie is als volgt:
Ik heb 1 klasse voor de SQL, een klasse voor de errors, een voor de basale forum functies én een die de gebruikersgegevens (prefs, sessies, rechten) afhandelt.
Nu gaat het erom dat de klasse SQL 'breed' benaderbaar is én dat ik vanuit SQL de error klasse kan benaderen, maar ook vanuit de forum klasse.
Nu zou je dus kunnen zeggen een klasse als global...
Nu heb ik de volgende opties:
Singleton
Ik begrijp 'm nog niet helemaal, maar het basis princiepe is dus 'heen en weer gooien'. Maar ik zelf vind eigenlijk niet dat ik er aparte extra functies en allerlei blaat voor moet hebben.
Volgens een kennis is het volgende singleton:
Maar nu weet hij eigenlijk niet precies hoe het werkt, en begrijp ik niet de preciese werking.
Extends
Ook een optie, alles extenden. Maar dat levert uiteindelijk een enorme klasse bak met variabelen, functies en nog meer meuk op waarbij je maar 1 scope binnen de klasse hebt (afaik).
globals!?
Ik kan het ook zo aanpakken
Maar dat is imho ranzig...
Iemand suggesties/tips?
Ik ben bezig met het verder ontwikkelen van mijn forum. Bijkomend effect is dat je je code verder abstraheerd. Nu sta ik op het punt om de indeling van bepaalde files om te gooien, en wil dit graag goed doen.
De situatie is als volgt:
Ik heb 1 klasse voor de SQL, een klasse voor de errors, een voor de basale forum functies én een die de gebruikersgegevens (prefs, sessies, rechten) afhandelt.
Nu gaat het erom dat de klasse SQL 'breed' benaderbaar is én dat ik vanuit SQL de error klasse kan benaderen, maar ook vanuit de forum klasse.
Nu zou je dus kunnen zeggen een klasse als global...
Nu heb ik de volgende opties:
Singleton
Ik begrijp 'm nog niet helemaal, maar het basis princiepe is dus 'heen en weer gooien'. Maar ik zelf vind eigenlijk niet dat ik er aparte extra functies en allerlei blaat voor moet hebben.
Volgens een kennis is het volgende singleton:
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
29
30
31
32
33
34
35
36
| <?php class foo { var $changeMe = ''; function &getInstance() { static $instance; if (!isset($instance)) $instance = new foo; return $instance; } function changeIt($to) { $this->changeMe = $to; } } class bar { function changeOtherClass { $foo = &foo::getInstance(); $foo->changeMe = 'Changed for the second time.'; echo $foo->changeMe; } function &getInstance() { static $instance; if (!isset($instance)) $instance = new bar; return $instance; } } echo "<pre>"; $foo = &foo::getInstance(); $foo->changeIt('This is the first attempt to change me!'); echo $foo->changeMe . "\n"; $bar = &bar::getInstance(); $bar->changeOtherClass(); ?> |
Maar nu weet hij eigenlijk niet precies hoe het werkt, en begrijp ik niet de preciese werking.
Extends
Ook een optie, alles extenden. Maar dat levert uiteindelijk een enorme klasse bak met variabelen, functies en nog meer meuk op waarbij je maar 1 scope binnen de klasse hebt (afaik).
globals!?
Ik kan het ook zo aanpakken
PHP:
1
2
3
4
5
6
7
8
9
10
| <?php class foo { function bar () { echo 'speculaasijsblokjesmachientjesmonteursopleiding'; } } $foo = new Foo; global $foo; ?> |
Maar dat is imho ranzig...
Iemand suggesties/tips?
|>