PHP: Почему мой `set_include_path()` не работает, когда указывает на один каталог?
Есть небольшая библиотека, которую я пытаюсь подключить к своему проекту. Эта библиотека имеет некоторые включения и требует для всех классов, поэтому я пытаюсь установить путь включения для всего этого, чтобы работать.
Когда я пытаюсь установить путь для включения в одноранговую ветку, я сталкиваюсь с ошибкой.
Для ориентира, require('/../my/test.php')
работает отлично.
Так же
set_include_path('/../');
require_once('my/test.php');
Но однажды я попробую
set_include_path('/../my/');
require_once('test.php');
Я получил:
Предупреждение: require_once(one.php): не удалось открыть поток: нет такого файла или каталога в...
Что мне не хватает?
1 ответ
Начиная ваши пути с /
значит посмотри в корневой каталог, так /../
технически один каталог над корневым каталогом.
Чтобы установить путь включения к родительскому каталогу текущего местоположения, вам просто нужно ../
, Чтобы сделать код более переносимым, я бы предложил объединить его с dirname(__FILE__)
чтобы получить абсолютный путь к текущему каталогу.
IE:
set_include_path(dirname(__FILE__) . '/../my/');
Обратите внимание на предыдущее /
требуется в этом примере как dirname()
не возвращает косую черту