0

Zend Quick StartZend:如何防止includePath中的雙重庫?

公共/ index.php的

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

CONFIGS /的application.ini

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

如從INI結果

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

如果滴 「includePaths.library」 ,./zf(Zend_Tool)失敗。如果在index.php中,引導失敗。

如何正確地防止這種重複?

+0

你在哪裏放置'print get_include_path()'來測試這個?例如,您是否在其他地方設置了include路徑(可能是php.ini?) –

+0

IndexController :: indexAction()。 沒有其他的包含路徑操作 – Dmitry

+0

據我所知,我可以通過set_include_path在bootstrap中簡化硬編碼includePath而不保存舊的includepath組件,但爲什麼需要在ini中包含選項「includePaths」,如果它無法正確使用 – Dmitry

回答

0

我認爲你是對的,包含路徑不應該在application.ini中,所以我會刪除它。然後讓Zend的工具的工作,我認爲你有兩個選擇:

  1. 更改設置要像在這個問題上的回答:Zend tool include path(這將有利於ZF發現包括路徑)。 ZF的汽車發現在一路上發生了變化,但我不確定這種方法是否仍然有效。

  2. 或者,您可以設置一個環境變量來給Zend Tool庫位置,詳細信息如下:http://framework.zend.com/manual/1.12/en/zend.tool.framework.clitool.html(請參閱標題爲「其他設置注意事項」的部分)。

就我個人而言,我只是跳過Zend工具 - 我不認爲它真的讓事情變得更容易。