来自Python我试图理解php使用命名空间的方式。在Python中,我只需导入如下:
import someModule
from anotherModule import someClass
这就像一个魅力,就像任何人都期望的那样。
另一方面,在php中,我们有类似命名空间的东西。据我所知,我可以在myModule.php的顶部定义一个命名空间,如下所示:
namespace myNamespace;
如果我是正确的,这意味着此文件中的代码可以通过这样做在另一个myWorkingCode.php中被称为(或由其导入)名称“myNamespace”:
use myNamespace;
所以我的问题; myWorkingCode.php如何找到myModule.php?它是否需要在同一个文件夹中才能工作或者我还需要做其他事情吗?
答案 0 :(得分:2)
php中的use函数完全不同于python中的import。
用于为非常长的命名空间创建别名。例如:
use \My\Very\Long\Omg\Its\Sooooo\Long\How\Stupid as veryshort;
现在,在命名空间veryshort下可以使用该长命名空间中的每个类。更多信息:http://php.net/manual/en/language.namespaces.importing.php
然后,php如何找到正确的文件?它没有。您必须自己包含它,但是如果您对文件使用强命名约定,则可以使用具有spl_autoload_register功能的自动加载器。可在此处找到一个好的标准:http://www.php-fig.org/psr/0/