0

Zend Quick StartZend: Как предотвратить двойную библиотеку в includePath?

общественные/index.php

set_include_path(implode(PATH_SEPARATOR, array(
    dirname(dirname(__FILE__)) . '/library', 
    get_include_path(), 
))); 

конфиги/Application.ini

includePaths.library = APPLICATION_PATH "/../library" 

В результате

print get_include_path(); 
// prints %localpath%/application/../library:%localpath%/library 

если падение "includePaths.library" от ини , ./zf (Zend_Tool) завершается с ошибкой. Если выпадет index.php, bootstraping терпит неудачу.

Как правильно предотвратить дублирование?

+0

Где вы помещаете 'print get_include_path()' для проверки этого? У вас есть путь включения в другом месте (возможно, php.ini?) –

+0

IndexController :: indexAction(), например. Ничего другого не включает в себя манипуляции с путями – Dmitry

+0

Я понимаю, что я могу упростить hardcode includePath в bootstrap через set_include_path без сохранения старых компонентов includeepath, но зачем нужны опции includePaths в ini, если он не может быть использован правильно – Dmitry

ответ

0

Я думаю, вы правы, что путь включения также не должен быть в application.ini, поэтому я удалю это. Затем, чтобы получить Zend Tool работает, я думаю, у вас есть два варианта:

  1. Поменяйте вашу установку, чтобы быть как верхний ответ на этот вопрос: Zend tool include path (которые помогут ZF найти путь включения). Автоматическое обнаружение ZF было изменено где-то на этом пути, хотя я не уверен, что этот подход все равно будет работать.

  2. В качестве альтернативы существует переменная среды, которую вы можете задать, чтобы дать Zend Tool расположение библиотеки, здесь: http://framework.zend.com/manual/1.12/en/zend.tool.framework.clitool.html (см. Раздел «Другие вопросы настройки»).

Лично я бы просто пропустил Zend Tool - я не думаю, что это действительно облегчает ситуацию.