Comment ajouter un chemin au chemin d'inclusion de PHP dans.htaccess
Actuellement sur mon site, j'utilise des instructions comme:
include 'head.php';
include '../head.php';
include '../../head.php';
En fonction du nombre de dossiers imbriqués profonds que je suis. Je suis sûr qu'il y est une meilleure façon de le faire.
Je suis convaincu que .htaccess
est la solution, mais je ne suis pas sûr de savoir comment l'implémenter. Si j'insère:
php_value include_path "public/html/root"
... Je perds le reste de mes chemins (/usr/lib/php
, etc.). J'ai naïvement essayé:
php_value include_path $include_path . "(path)"
Mais bien sûr, cela n'a pas fonctionné. Comment puis-je ajouter ou ajouter un seul chemin à cette liste avec .htaccess
?
2 réponses
Si vous ne pouvez pas modifier les php.ini
fichier lui-même, vous pouvez ajouter
set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);
Avant vos déclarations include
.
Toutefois, si vous vous trouvez avoir include
ou require
ennuis, c'est probablement une odeur de code. La meilleure solution serait une bonne conception orientée objet avec une bonne fonction __autoload
.
Créer dans les sous-sous-répertoires un fichier .htaccess
avec le contenu
php_value include_path '../../includes'
Ou tout ce que include_path
est bon pour ce répertoire.
Avantages:
- Pas de hack laid avec plusieurs inclut avec une profondeur différente. Juste
include 'head.php'
. - Pas de dépendance à l'édition
php.ini
. - Pas besoin d'utiliser
set_include_path()
avant de les inclure. - aucune dépendance sur l'inclusion de constantes comme
include INCLUDE_PATH . 'head.php'
.
Prix à payer:
Vous litière vos sous-sous-répertoires chacun avec un fichier .htaccess
.