Vous pouvez l'inclure par rapport au répertoire courant, comme ceci:
require_once(dirname(__FILE__) . '/template.php');
dirname (FICHIER) se traduira dans le répertoire du script en cours (index.php) et la ligne ci-dessus ajoute '/template.php', ce qui donne le chemin complet du template.php côte à côte vers le fichier index.php.
Je trouve préférable d'inclure les fichiers de cette façon par rapport à un chemin d'accès complet pour éviter les problèmes avec le chemin de recherche PHP, par exemple. C'est très explicite de cette façon.
MISE À JOUR: J'ai mal compris la question initiale. Il semble que template.php ne soit pas copié, seul index.php l'est. Ainsi, vous aurez quelque chose qui pourrait ressembler à:
template/template.php
template/index.php (just a template)
foo/bar/index.php
foo/bar2/index.php
Puisque les gens peuvent frapper le foo/bar/index.php par exemple sans canalisant via un script central, vous devrez trouver en quelque sorte le modèle, peu importe là où tu es.
Vous pouvez le faire en réglant le include_path PHP, par exemple par un .htaccess sur un serveur Apache:
php_value include_path ".:/home/<snip>/template"
Ensuite, dans chaque index.php vous pouvez inclure template.php et rechercherons la répertoire en cours, puis essayez votre répertoire de modèles.
Vous pouvez également calculer le chemin relatif lors de la copie du script et y inclure un numéro de '..' pour sortir (par exemple '../../template/template.php'). C'est un peu fragile, cependant.
N'auriez-vous pas à ajuster ce chemin chaque fois que vous faites la copie? Pour moi, cette solution ne semble pas très différente de la simple inclusion d'un chemin relatif en premier lieu. – Svish
Il est déterminé au moment de l'exécution, vous n'avez donc pas besoin de le modifier lorsque vous copiez le répertoire. Lors de l'exécution, il calcule le fichier en cours, supprime le nom de fichier et ajoute template.php à la fin. C'est la manière la plus résiliente et explicite d'inclure/exiger un fichier en PHP je crois. – wojo
ok, mais mes fichiers index.php seront créés dynamiquement ... donc je pourrais avoir une structure de dossiers comme celle-ci "articles/article_1/subfolder/index.php" et mon dossier de template sera au même niveau que "articles" dossier – kmunky