2013-01-05 86 views
4

我在我的PHP項目的下列文件:PHPStorm和模塊的引用

index.php 
private/module1.php 
private/module2.php 

index.php引用module1.php這樣:

require_once('private/module1.php'); 

通過反過來,module1.php需要module2.php,因此它具有以下行:

require_once('private/module2.php'); 

我需要通知從根開始的相對路徑才能正常工作。我想這是因爲require_once命令需要從當前文件,這恰好是index.php文件的路徑。問題是PHP Storm無法管理這個引用。例如,它不會將字符串private/module2.php變成超鏈接,也不會將其視爲實際引用。

如何解決這個問題?因爲它在尋找

index.php 
private/module1.php 
private/private/module2.php 

module1.php

+1

個人而言,我總是指定相對於當前文件的路徑,即'require_once dirname(__ FILE__)。 '/module2.php';'。它可能會迴響,改變您的代碼以適應IDE,但我認爲有明確的文件引用是很好的做法。 – DCoder

+0

是的,但我重視IDE自動化。如果我得不到答案,我可能會倒退到這樣的事情。 – fernacolo

回答

4

你只需要通過指定include路徑正確配置PhpStorm項目PhpStorm應該用來解決引用。

轉到文件 - >設置 - > PHP。

那裏應該添加項目根目錄(index.php所在的目錄)到包含路徑列表。

完成後,PhpStorm應該解析require_once('private/module2.php')中的路徑。

另外,你可以在私人目錄添加到列表中的include路徑PHP通過set_include_path()使用在你的index.php地方。然後,您可以撥打電話require_once('module2.php') module1.php

同樣,您必須將專用目錄添加到PhpStorm使用的包含路徑列表中,以使其解決此引用。

+0

這是否爲所有項目或當前項目配置此路徑?我只需要爲當前項目配置它。 –

+0

@EricG是的。爲了確保這一點,您應該在設置窗口的頂部看到「對於當前項目」。 –

0

PhpStorm不能使基準應該只需要文件名module2.php

require_once('module2.php);

+0

謝謝,但你的答案中沒有新東西。更改爲簡單的''module.php''會中斷網站,導致消息「無法打開流:沒有這樣的文件或目錄」。你有沒有注意到我的問題中的文字「需要通知從根到它的工作的相對路徑」? – fernacolo