Hallo,
Ik zit met volgend probleempje: ik heb een webapplicatie die bestaat uit een zeer uitgebreide klassenstructuur met zowel abstracte klassen als heel wat overerving. Alle klassen zitten in 1 folder en voor de makkelijkheid heb ik alle klassen die bij elkaar horen in subfolders gestoken (of dat een goed idee is weet ik niet, maar ik heb meer dan 50 klassen, dus handig is het in elk geval wel.
Neem nu volgend voorbeeld: ik heb een klasse (compleet fictief voorbeeld) Hond die overerft van Dier. Hond zit bij mij in /root/hond/Hond.class.php, dier zit in /root/Dier.class.php. Bovenaan elke pagina van de site wordt volgende code uitgevoerd:
Stel ik heb in een scriptje Hond nodig, dan doe ik new Hond();. Dit scriptje zal dan Hond zoeken en inladen.
Tot hier alles perfect, ik werk al een tijdje zo en dat gaat goed.
Wat ik nu wil is dat ik alle klassen kan cachen op mijn server, zodat ik ze niet moet inladen. Op die manier hoop ik de laadtijden van mijn pagina's te verbeteren.
De eerste vraag is: kan dit eigenlijk wel?
De tweede vraag is: hoe
Ik ben dus aan het zoeken naar een caching systeem dat al die klassen eigenlijk altijd "voorhanden" houdt.
Ik heb al heel wat rondgesnuffeld in het Zend framework (Zend.Cache), maar voorzover ik weet is dit enkel om pagina's te cachen en niet zozeer classes (http://framework.zend.com/manual/en/zend.cache.html). Andere google probeersels (zoals http://www.google.be/sear...official&client=firefox-a) halen niet veel uit.
Iemand die mij op weg kan helpen? Vooral wat betreft de keywords waarop ik moet zoeken?
Thanks.
Ik zit met volgend probleempje: ik heb een webapplicatie die bestaat uit een zeer uitgebreide klassenstructuur met zowel abstracte klassen als heel wat overerving. Alle klassen zitten in 1 folder en voor de makkelijkheid heb ik alle klassen die bij elkaar horen in subfolders gestoken (of dat een goed idee is weet ik niet, maar ik heb meer dan 50 klassen, dus handig is het in elk geval wel.
Neem nu volgend voorbeeld: ik heb een klasse (compleet fictief voorbeeld) Hond die overerft van Dier. Hond zit bij mij in /root/hond/Hond.class.php, dier zit in /root/Dier.class.php. Bovenaan elke pagina van de site wordt volgende code uitgevoerd:
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
37
38
39
40
41
| define("CLASS_DIR", $_SERVER["DOCUMENT_ROOT"]."/blaat"); /** * autoload classes (no need to include them one by one) * * @uses classFolder() * @param $className string */ function __autoload($className) { $folder = classFolder($className); if($folder) require_once($folder.$className.".class.php"); } /** * search for folders and subfolders with classes * * @param $className string * @param $sub string[optional] * @return string */ function classFolder($className, $sub = "/") { $dir = dir(CLASS_DIR.$sub); if(file_exists(CLASS_DIR.$sub.$className.".class.php")) return CLASS_DIR.$sub; while(false !== ($folder = $dir->read())) { if($folder != "." && $folder != "..") { if(is_dir(CLASS_DIR.$sub.$folder)) { $subFolder = classFolder($className, $sub.$folder."/"); if($subFolder) return $subFolder; } } } $dir->close(); return false; } |
Stel ik heb in een scriptje Hond nodig, dan doe ik new Hond();. Dit scriptje zal dan Hond zoeken en inladen.
Tot hier alles perfect, ik werk al een tijdje zo en dat gaat goed.
Wat ik nu wil is dat ik alle klassen kan cachen op mijn server, zodat ik ze niet moet inladen. Op die manier hoop ik de laadtijden van mijn pagina's te verbeteren.
De eerste vraag is: kan dit eigenlijk wel?
De tweede vraag is: hoe
Ik ben dus aan het zoeken naar een caching systeem dat al die klassen eigenlijk altijd "voorhanden" houdt.
Ik heb al heel wat rondgesnuffeld in het Zend framework (Zend.Cache), maar voorzover ik weet is dit enkel om pagina's te cachen en niet zozeer classes (http://framework.zend.com/manual/en/zend.cache.html). Andere google probeersels (zoals http://www.google.be/sear...official&client=firefox-a) halen niet veel uit.
Iemand die mij op weg kan helpen? Vooral wat betreft de keywords waarop ik moet zoeken?
Thanks.