Cómo añadir una ruta al include_path de PHP en .htaccess
-
16-09-2019 - |
Pregunta
Actualmente en mi sitio que estoy usando frases como:
include 'head.php';
include '../head.php';
include '../../head.php';
dependiendo del número de carpetas anidadas profunda que soy. Estoy seguro de que hay una mejor manera de hacer esto.
Estoy convencido de .htaccess
es la solución, pero no estoy seguro de cómo hacer para implementarlo. Si inserto:
php_value include_path "public/html/root"
... pierdo el resto de mis caminos (/usr/lib/php
, etc.). Ingenuamente intentado:
php_value include_path $include_path . "(path)"
pero por supuesto esto no funcionó. ¿Cómo podría anteponer o anexar un único camino a esta lista con .htaccess
?
Solución
Si no puede editar el archivo php.ini
sí, se podría añadir
set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);
antes de que sus declaraciones include
.
Sin embargo, si usted se encuentra con include
o require
problemas, es probable que sea un olor código. La mejor solución sería un buen diseño orientado a objetos con una buena función __autoload
.
Otros consejos
Crea en las sub-sub-directorios .htaccess
un archivo con el contenido
php_value include_path '../../includes'
o lo que sea include_path
es el adecuado para ese directorio.
Ventajas:
- No hay truco feo, con múltiple incluye con diferente profundidad. Sólo
include 'head.php'
. - No hay dependencia de
php.ini
edición. - No hay necesidad de utilizar
set_include_path()
antes de incluir. - No hay dependencia de los incluyendo constantes como
include INCLUDE_PATH . 'head.php'
.
precio a pagar:
basura su sub-sub-directorios, cada uno con un .htaccess
archivo.