Я пишу загрузчик изображений на основе профиля, и он структурирован в несколько файлов:
lib/
profiles/
getbooru
install
readme
uninstall
Если я включу эти файлы следующим образом:
include 'lib/curl';
include 'lib/string';
foreach(glob('profiles/*') as $profile)
include $profile;
Только для программыработает, если вы вызываете его из каталога программы.Если я изменю это на следующее:
set_include_path('/usr/local/share/getbooru');
include 'lib/curl';
include 'lib/string';
foreach(glob('/usr/local/share/getbooru/profiles/*') as $profile)
include $profile;
Тогда он заставит пользователей запустить скрипт установки, чтобы поместить файлы в этот каталог, и он больше не будет работать нигде.В этом случае getbooru
является символической ссылкой на /usr/local/bin/getbooru
.
Хорошая новость: Я заметил, что если я пытаюсь получить имя файла запущенного скрипта, даже если он выполняется черезsymlink всегда будет возвращать «реальное» имя сценария (чтобы я не включал несуществующие данные из /usr/local/bin
).
Как я могу сделать эту программу переносимой для запуска в любом месте?