Когда я запускаю phpinfo()
и просматриваю категорию Configuration
в PHP Core
, я вижу директиву под названием include_path
с локальным значением и мастер-значением.
В этом случае мое локальное значение установлено на
.:
./include:
../include:
/usr/share/php:
/usr/share/php/smarty:
/usr/share/pear
и мое мастер значение равно
.:
/usr/share/php:
/usr/share/pear:
/usr/share/php/pear:
/usr/share/php/smarty
Причина, по которой я пытаюсь понять, как это работает, заключается в том, что в системе, над которой я работаю, есть файл под названием Smarty.class.php
, который, я уверен, звучит очень знакомо всем, кто использует Smarty Templating Engine.
В один из файлов PHP входит следующее:
require_once("Smarty.class.php");
require_once("user_info_class.inc");
Файл user_info_class.inc
находится в том же каталоге, что и файл, включающий включение, что имеет для меня смысл, и именно так я всегда ссылаюсь на файлы. Я решил, что хочу открыть файл Smarty.class.php, и предположил, что он будет в том же каталоге, но это не так.
После небольшой копки я обнаружил эти php_ini
переменные и, наконец, смог найти файл в каталоге usr/share/php/smarty/
.
Так что может показаться, что при включении он следует некоторому порядку между значениями Local и Master для include_path
.
Предполагая, что мои выводы были правильными, может ли кто-нибудь объяснить порядок, в котором PHP ищет файлы для включения?