Come aggiungere un percorso a PHP include_path in .htaccess
-
16-09-2019 - |
Domanda
Al momento sul mio sito che sto utilizzando affermazioni del tipo:
include 'head.php';
include '../head.php';
include '../../head.php';
a seconda di come molte cartelle nidificate profondo io sono. Sono sicuro che ci sia un modo migliore per farlo.
Sono convinto .htaccess
è la soluzione, ma non sono sicuro di come fare per la sua attuazione. Se inserisco:
php_value include_path "public/html/root"
... perdo il resto dei miei percorsi (/usr/lib/php
, ecc). Ho provato ingenuamente:
php_value include_path $include_path . "(path)"
ma ovviamente questo non ha funzionato. Come avrei potuto anteporre o aggiungere un singolo percorso di questa lista con .htaccess
?
Soluzione
Se non è possibile modificare il file php.ini
in sé, si potrebbe aggiungere
set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);
prima le sue dichiarazioni include
.
Tuttavia, se vi trovate a dover include
o require
problemi, probabilmente è un odore di codice. La soluzione migliore sarebbe una buona progettazione orientata agli oggetti con una buona funzione __autoload
.
Altri suggerimenti
Crea nelle sub-sub-directories un .htaccess
file con il contenuto
php_value include_path '../../includes'
o qualsiasi altra cosa include_path
è giusto per questa directory.
I vantaggi:
- Nessun brutto hack con più include con profondità diverse. Basta
include 'head.php'
. - Nessuna dipendenza sulla modifica
php.ini
. - Non c'è bisogno di utilizzare
set_include_path()
prima di includere. - Nessun dipendenza tra cui costanti come
include INCLUDE_PATH . 'head.php'
.
prezzo da pagare:
È figliata il sub-sub-directory ciascuno con un file .htaccess
.