Mislim da je najjednostavnije resenje (ja koristim upravo to) da definises kionstantu na pocetku skaog scripta:
define ('PATH_ROOT', './');
pa onda kada include-ujes, pises
require_once (PATH_ROOT.'config.php');
require_once (PATH_ROOT.'classes/class.gpb.php');
ako se nalazi u podfolderu, recimo "test", pises
define ('PATH_ROOT',
'../');
a ostatak koda je isti
require_once (PATH_ROOT.'config.php');
require_once (PATH_ROOT.'classes/class.gpb.php');
i onda nikada nema zajeba, jedino sto moras da se setis je da ako promenis lokacija scripta, promenis i PATH_ROOT, pa tako ako je u podfolderu "/test/a/b/":
define ('PATH_ROOT',
'../../../');
i uvek radi.
Sto se __FILE__ tice, morao bi onda da ga parseujes
dirname(__FILE__)."/"
i ispostavilo se da to ume nekada da izazove cudne efekte, narocito ako imas nekoliko ugnjezdenih include, ili ako se razlikuje directory separator (\ ili /) (obicno nema problema ali moze da se desi), a pogotovo ako se (u jednom slucaju mi se to desilo) razlikuje $_SERVER['DOCUMENT_ROOT'] od pravog DOCUMENT_ROOT. Tu sam proveo 2 dana da provalim gde je greska u kodu dok nisam na kraju u ocajanju pogledao phpinfo().
Ovo sa konstantom je brze, a moze cak i pocetnik da razume.
Goran Pilipović fka bluesman