Zie reactie onderaan
Ik heb mijn smarty template files en de smarty engine buiten de document root geplaatst.
In eerste instantie werkte ik met absolute paden naar de betreffende smarty bestanden, maar bij het wisselen tussen de development en productie omgeving levert dit altijd erg veel aanpas werk op.
Middels de volgende code lukt het me om in bijna php files de smarty config file te includen:
<?php
define('__ROOT__', dirname(dirname(__FILE__)));
require_once(__ROOT__.'/configs/config.php');
?>
Alle files die in een 'neighbor' folder van configs staan gaat het goed, maar voor files die naast de config folder (dus root staan) gaat het fout ook voor files die in een sub volder veen een neighbor folder staan
Root
- configs
- folder2
--+ file.php [OK]
- folder3
--+ subfolder3.1
----+ file.php [FAIL]
--+ subfolder3.2
- folder4
- file.php [FAIL]
Nu zou ik ook graag de files die buiten de root vallen op een vergelijkbare manier willen includen. Alleen dat wil niet echt lukken. Ik ging ervanuit dat dit middels een /../ goed zou moeten komen, maar dat is niet het geval.
<?php
require_once(dirname(dirname(__FILE__)).'/../smarty/libs/Smarty.class.php');
?>
Hulp is dus welkom ;)
[size=xsmall]Toevoeging op 25/10/2011 14:39:40:[/size]
Mensen vergeet deze post maar, realiseer me nu dat ik een denkfout maakte. Het is natuurlijk niet mogelijk om op alle niveaus op deze manier te includen, op een lager niveau moet de / weg en op een hoger niveau moet er een /../ bij.
Wat betreft de smarty files, hiervoor heb ik nu gewoon simpel een $path variable voor gezet, die ik na een wissel tussen productie en development moet aanpassen.
Problem solved
1.551 views