2013-08-23 17 views
2

我在PHP方面有一点经验,但我主要来自Python。我非常喜欢Python的东西就是处理模块的方式。如果我的目录中有一个名为a.py的文件,它包含一个名为MyClass的类,我可以像这样简单地导入类。如何给PHP一个包含它自己的命名空间(比如“来自Python中的导入MyClass”)?

from a import MyClass 

但是,从PHP,我知道你可以这样做:

include somefile.php 

这种进口并运行文件中的所有代码,这使得它类似于在Python

from a import * 

以下然而,做一个通配符导入会让我对我实际导入的内容毫无头绪,并且还会导致命名空间污染。所以我的问题;有没有一种方法可以通过命名它们来导入PHP中的类?

+1

这就是你想要的http://php.net /manual/en/language.namespaces.importing.php –

+0

请记住,将名称空间与自动加载器结合使用(http://stackoverflow.com/questions/1830917/how-do-i-use-php-namespaces-with-自动加载)意味着每个文件限制为一个类。我不知道为什么你想在同一个文件中使用两个公共类。 –

回答

0

PHP中的良好做法是每个文件一类,在同一文件中不是所有的类模块

例如:

classes/mynamespace/mypackage/IO.php 
classes/mynamespace/mypackage/DB.php 
classes/mynamespace/mypackage/log.php 
... 

然后使用自动加载磁带机,每次你需要一个类在你的代码中,自动加载器启动并加载它。如果你不使用自带内置自动加载器的框架,一个好的解决方案是使用作曲家提供的自动加载器,PHP的安全管理器:http://getcomposer.org/

相关问题