Ik gebruik voor het dynamisch laden van gebruikte classes de magic method __autoload. Dat doe ik op deze manier:
Werkt goed zonder problemen, alleen ben ik nu verplicht alle classes in de lib directory te zetten. En dat wordt erg vervelend en onoverzichtelijk als je meer richting de 100 classes gaat. Hoe kan ik dit beter oplossen?
-Ik zou bijvoorbeeld naar de naam van de class kunnen kijken en op basis daarvan een include doen.
-Ik zou ook recursief alle directories in lib kunnen doorlopen en dan kijken of de class gevonden wordt. Maar of dit nou zo snel is... Natuurlijk zou ik ook bij de eerste lookup een array kunnen opbouwen met daarin alle beschikbare classes en de paden op basis van dat recursief uitlezen, en dan een flag zetten om dit de volgende keer te skippen.
Wat denken jullie. Mischien nog iemand die een leuke 'truuk' heeft?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| function __autoload($className) { $file = "lib/" . $className . ".php5"; if ( file_exists($file) ) { include $file; } else { // error } } |
Werkt goed zonder problemen, alleen ben ik nu verplicht alle classes in de lib directory te zetten. En dat wordt erg vervelend en onoverzichtelijk als je meer richting de 100 classes gaat. Hoe kan ik dit beter oplossen?
-Ik zou bijvoorbeeld naar de naam van de class kunnen kijken en op basis daarvan een include doen.
-Ik zou ook recursief alle directories in lib kunnen doorlopen en dan kijken of de class gevonden wordt. Maar of dit nou zo snel is... Natuurlijk zou ik ook bij de eerste lookup een array kunnen opbouwen met daarin alle beschikbare classes en de paden op basis van dat recursief uitlezen, en dan een flag zetten om dit de volgende keer te skippen.
Wat denken jullie. Mischien nog iemand die een leuke 'truuk' heeft?
[ Voor 4% gewijzigd door Michali op 13-10-2004 14:30 ]