从命名空间导入所有内容

时间:2013-12-30 09:44:30

标签: php namespaces

在python中,您可以执行“import star”将其他名称空间中的所有内容嵌入到本地名称空间中:

# file "spam":
def ham():
    some code

# file "main":
from spam import *
xy = ham() <-- uses 'ham' from 'spam'

这通常被认为是“不好的做法”,但我仍然想知道如何对php命名空间做同样的事情。以下不起作用:

# file "spam":
namespace spam;
function ham() {
    some code
}

# file "main":
include "spam.php";
use spam;    
xy = ham() <-- error

2 个答案:

答案 0 :(得分:2)

在PHP中,您不从命名空间“导入”。您只能将命名空间或类别名别名为另一个(可能更短)名称。通常你这样做:

use Foo as F;

new F\Bar;

这就是“等同于”“尽可能方便地使用命名空间中的所有东西”。

答案 1 :(得分:1)

虽然没有办法将命名空间中的所有类都包含在一行中,但是人们可以使用几乎任何其他语言的方式,我发现让IDE自动处理“使用”案例是无用的。

我强烈建议调查PhpStorm(这是我个人的最爱)。使用自动完成功能时,它可以自动编写“使用”行。

请参阅https://www.jetbrains.com/phpstorm/webhelp/creating-imports.html