Hoi,
Ik heb de volgende functie geschreven:
Zoals je ziet is het doel om bij een include eerst te checken of er een custom versie van bestaat, en zoja die te gebruiken. Als de custom versie niet bestaat probeert ie het standaard bestand te includen.
Deze functie staat in index.php zodat ie altijd beschikbaar is zonder globals te hoeven gebruiken. Ik gebruik de functie onder andere voor het inlezen van config bestanden. Een config bestand ziet er bij mij doorgaans uit als:
en wordt geinclude door classes (objecten).
Probleem is dat de config file, als deze wordt uitgevoerd middels mijn eigen custom_include ipv include, hij $this niet kent. Hij zit dus buiten de class. Hoe los ik dit op?
Ik heb de volgende functie geschreven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| #try to include custom file else normal file------------------------------------------------------- function custom_include( $filename ) { #init global $_paths; #try to include custom file if ( is_readable($_paths['web_root'] . "_custom/" . $filename) ) { include($_paths['web_root'] . $_paths['custom'] . "/" . $filename); } #try to include normal file elseif ( is_readable($_paths['web_root'] . $filename) ) { include($_paths['web_root'] . $filename); } } |
Zoals je ziet is het doel om bij een include eerst te checken of er een custom versie van bestaat, en zoja die te gebruiken. Als de custom versie niet bestaat probeert ie het standaard bestand te includen.
Deze functie staat in index.php zodat ie altijd beschikbaar is zonder globals te hoeven gebruiken. Ik gebruik de functie onder andere voor het inlezen van config bestanden. Een config bestand ziet er bij mij doorgaans uit als:
code:
1
2
3
| $this->settings['toon_banner'] = true; $this->settings['toon_zoek'] = false; ... |
en wordt geinclude door classes (objecten).
Probleem is dat de config file, als deze wordt uitgevoerd middels mijn eigen custom_include ipv include, hij $this niet kent. Hij zit dus buiten de class. Hoe los ik dit op?