Инструмент Zend включает в себя путь

Возможно ли установить и использовать ZF (+ его консольный инструмент) без доступа к include_path direcotory? Я попытался добавить … Zend / library directcotry в include_path, но без успеха.

Я сделал это так:

php -r 'set_include_path(get_include_path() . PATH_SEPARATOR . "/var/www/.../Zend/library")'; 

После выполнения var_dump результата функции выше он возвращает старый include_path, что должно означать успех. Но следующий вызов get_include_path () также возвратил старый путь.

Я также попытался установить переменную окружения:

 ZF_INCLUDE_PATH_PREPEND="/var/www/.../Zend/library" 

В старой директории include_path есть наша структура компании, поэтому я не могу (даже если бы я мог) не копировать там библиотеку ZF.

Я думаю, что правильная структура не должна полагаться на любые глобальные настройки PHP, как include_path. Я думаю, что должно быть возможно установить путь включения где-нибудь в внутренний файл конфигурации ZF.

редактировать:
Я добавил set_include_path('/var/www/.../Zend/library') в файл zf.php, и инструмент перестает метать ошибку «error include_path». На самом деле он прервал печать любого выхода. При выполнении команды zf create project test ничего не делает. ~ / .zf не создана.

    Если вы не можете скопировать библиотеку zf в какой-либо «глобальный» путь включения, например /usr/share/php/ , вы можете скопировать его там, где находится ваш проект, и запустить инструмент zf . Структура папок, такая как:

     /var/www/zf_tool `/bin/ `zf.sh `zf.php `/library `/Zend 

    Скопируйте папку Zend в библиотеку и zf.sh и zf.php в bin и установите для них исполняемый файл chmod a+x zf.sh zf.php если они еще не были. Затем, если вы запустите /var/www/project/bin/zf.sh он будет искать zf-файлы в include_path, но если его там нет, он поднимет одну папку и войдет в папку library . Только если библиотека zf не будет там найдена, она умрет с ошибкой. В итоге создание нового zf-проекта прост как:

     $ pwd /var/www/zf_tool/bin $ ./zf.sh create project /var/www/test_project 

    Вот и все. HTH 🙂

    Использование функции set / get include_path только собирается установить его для жизни «запроса», чтобы он возвращался к нормальному состоянию, как только завершится окончание выполнения команды / веб-запроса. Что касается установки пути включения для вашей локальной копии, вы можете сделать это в переменной среды, как вы пробовали, или в вашей папке ~/.zf на коробке. там есть конфиги, и есть параметр cor include path.

    Помимо этого вы могли бы также рекламировать что-то вроде того, что у вас было в php -r ... для скрипта оболочки, выполняемого вами напрямую, хотя это не было бы рекомендуемым способом.