2016-04-14 87 views
4

我有一個名爲「init.php」的文件,其中我包含了所有具有命名空間的類。其中之一將是例如:MyClass \ Helper。命名空間:「用作」全局

總是在init中,在這些類之後,會包含使用MyClass \ Helper的另一個文件(b.php)。

最後,該文件「init」也是使用MyClass \ Helper的索引所必需的。

所以:

init.php 
    -> Require libs/Helper.php (final namespace: MyClass\Helper) 
    -> Require b.php 
     -> Use MyClass\Helper 

index.php 
    -> Require init.php 
    -> Use MyClass\Helper 

現在我希望把我的init.php,包含所有類 use MyClass\Helper as Helper後進行,但它不工作(在其他文件中未發現類,如果我用「幫手「而不是MyClass \ Helper),我必須手動將它放在b.php(包含在類之後)和index.php中。

有一種方法可以「保存」所有文件的「用作」嗎?

+1

根據PHP手冊http(僅使用命名空間功能(特別是關鍵字'use') ://php.net/manual/en/language.namespaces.importing.php >導入規則是以文件爲基礎的,這意味着包含的文件不會繼承父文件的導入規則。 –

+1

您可能感興趣的這個答案:http://stackoverflow.com/a/19890311/488666 –

+0

Frosty Z,您的評論是正確的。請考慮重新做它作爲答案,以便每個人都可以upvote它。命名空間是在PHP和許多其他語言中逐個文件地處理的。 –

回答

0

整個想法是儘量不包括任何東西。嘗試使用spl_autoload_register註冊您的類自動加載器,因此您不需要使用'include'和'require'

相關問題