Domanda

Quando eseguo phpinfo() e lo sguardo dalla categoria Configuration sotto PHP Core, vedo una direttiva intitolata include_path, con un valore locale e un valore master.

In questo caso, il mio valore locale è impostato su

.:
./include:
../include:
/usr/share/php:
/usr/share/php/smarty:
/usr/share/pear

e il mio valore master è impostato su

.:
/usr/share/php:
/usr/share/pear:
/usr/share/php/pear:
/usr/share/php/smarty

Il motivo per cui sto cercando di imparare come funziona questo è perché c'è un file nel sistema di cui sto lavorando Smarty.class.php dal titolo, che sono suoni sicuro molto familiare a chi usa Smarty Templating motore.

Uno dei file PHP ha la seguente comprende:

require_once("Smarty.class.php");
require_once("user_info_class.inc");

Il file user_info_class.inc si trova nella stessa directory del file rendendo l'inclusione, che rende perfettamente senso per me, ed è il modo che ho sempre file di riferimento. Ho deciso che volevo aprire il file Smarty.class.php e aveva pensato che sarebbe nella stessa directory, ma non è stato.

Dopo aver fatto un po 'di scavo, ho scoperto le variabili php_ini, ed è stato finalmente in grado di individuare il file nella directory usr/share/php/smarty/.

Così sembrerebbe che quando si effettua un include, ne consegue una sorta di ordine tra i valori locali e master per il include_path.

Supponendo che le mie deduzioni erano corrette finora, qualcuno può spiegare l'ordine in cui le ricerche PHP per i file da includere?

È stato utile?

Soluzione

Il valore globale è fondamentalmente ciò che è impostato in php.ini. Il valore locale è quello che è attualmente in uso. Il valore locale sovrascrive completamente il valore master.

Secondo il manuale, PHP controlla i percorsi nell'ordine in cui sono specificati nella cornice include_path: http://php.net/manual/en/ini.core.php#ini.include-path

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top