2012-02-09 79 views
3

我有一個標準的前端控制器/引導配置,前端控制器位於root/index.php,引導端口位於root/app/bootstrap.php幫助IDE解決包含文件中的文件路徑

前控制器使用require_once 'app/bootstrap.php';加載boostrap文件。

引導程序然後使用相對於前端控制器的路徑加載必要的文件,例如require_once 'model/model.php';

我的IDE(PhpStorm 3.0.2)標誌在上面寫着警告引導文件路徑「無法解析表達式的目標......」

有評論和/或代碼,可以我添加到引導文件以幫助我的IDE識別並解析目錄/包含方案?

回答

2

以下應該工作。令人惱火的是,如果你使用$ config-> directoryroot,它不起作用,但是有一個關於here的bug,所以它應該在未來的版本中自行完成。

$directoryroot = '/full/system/path/to/docroot'; 

require_once($directoryroot.'/app/bootstrap.php'); 
+0

謝謝 - 很高興知道這個錯誤報告。我對每次提供完整路徑的擔心是,這會爲PHP創造額外的工作量。我知道,這是非常少的額外工作,但我想我寧願忍受比額外代碼更糟糕的警告。你有沒有發現一個足夠聰明的IDE來自己解決這個問題? – cantera 2012-02-11 21:50:11

+1

@ cantera25「這爲PHP創造額外的工作」???爲include/require提供完整路徑實際上比相對路徑快,因爲文件被直接處理(第一次迭代)而不需要檢查相對路徑(這將被計算爲至少第二次迭代)。雖然時差很小。 – LazyOne 2012-02-13 12:48:39

+1

您也可以使用'__DIR__'常量(與當前文件相關)或'dirname(__ FILE __)'(對於較低的PHP版本兼容性)。 – LazyOne 2012-02-13 12:51:04