Question

Quand je lance phpinfo() et regard par la catégorie Configuration sous PHP Core, je vois une directive intitulée include_path, avec une valeur locale et une valeur maître.

Dans ce cas, ma valeur locale est réglée sur

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

et ma valeur est réglée sur

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

La raison pour laquelle je suis en train d'apprendre comment fonctionne c'est parce qu'il ya un fichier dans le système que je travaille sur Smarty.class.php intitulé, que je suis sûr que les sons très familier à quiconque utilise Smarty Templating Engine.

L'un des fichiers PHP a ce qui suit comprend:

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

Le user_info_class.inc de fichier est dans le même répertoire que le fichier faisant le comprennent, ce qui est parfaitement logique pour moi, et la façon dont je l'ai toujours des fichiers référencés. J'ai décidé que je voulais ouvrir le fichier Smarty.class.php et avait supposé qu'il serait dans le même répertoire, mais ce n'était pas.

Après avoir fait un peu de creuser, je découvre ces variables php_ini, et a finalement été en mesure de localiser le fichier dans le répertoire usr/share/php/smarty/.

Il semblerait que lors de l'inclure, il suit une sorte d'ordre entre les valeurs locales et générales pour le include_path.

En supposant que mes déductions étaient justes à ce jour, quelqu'un peut-il expliquer l'ordre dans lequel les recherches PHP pour les fichiers à inclure?

Était-ce utile?

La solution

La valeur globale est essentiellement ce qui est définie dans le php.ini. La valeur locale est ce qui est actuellement utilisé. La valeur locale complètement la valeur écrase maître.

D'après le manuel, PHP vérifie les chemins dans l'ordre où ils sont spécifiés dans le paramètre include_path: http://php.net/manual/en/ini.core.php#ini.include-path

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top