2017-02-11 47 views
1

以下是我的文件夾結構如何使用命名空間,而不是包括(「file.php」)

--project 
    |_____classes 
      |_____config.php 
      |_____classes.php 
    |_____project 
      |_____index.php 
      |_____dashboard.php 

根據該文件夾結構,我在config.php &所有數據庫的配置我有延長在classes.php和更多的類中。

現在,當我在dashboard.php在項目文件夾中使用它的文件中我必須做這樣的事情includes("../classes/config.php");

我已閱讀在PHP命名空間的概念,我看了不少影片,但我不是能夠理解如何使用命名空間而不是include('');的概念。

任何人都可以給我一個演示代碼或源代碼.zip文件,以便我能理解在項目中實現的概念嗎?

任何幫助讚賞。謝謝:)

+0

可能的重複http://stackoverflow.com/questions/3384204/what-are-namespaces – rahul

+0

嘗試閱讀本[PSR-4](http://www.php-fig.org/psr/psr-4 /)。 – Ans

回答

4

命名空間是而不是代替includerequire

您可以使用自動加載策略根據需要加載類。 PSR-4是這個推薦標準,並且他們有一個example implementation

如果您使用作曲家在您的項目管理包,您可以configure it自動加載你的類

1

命名空間只是一個虛擬目錄系統。要使用另一個物理文件中的代碼,您必須包含它,沒有其他解決方法。

只需在頁面頂部添加此行即可。

use \YOUR\NAMESPACE\HERE; 

和,你是好現在使用指定的命名空間,但你仍然必須包括它。

要添加一些自動化,您可以使用spl_autoload_register()函數在類調用時自動包含您的文件。

+0

請你能提供給我演示代碼可能我有一個問題的理解仍然:( –

+0

/Classes/config.php '' /Project/index.php ' hello( );爲了省略'include'部分,你可以使用作曲家提供的自動加載器軟件包,或者如果你想像我一樣玩它,你可以自己製作。 ;) –

+0

在上面的代碼中,我仍然需要使用include'../Classes/config.php';如何刪除那個東西,以便我可以將它包含在類中。PHP和我然後只需要調用dashboard.php –