导入命名空间与包含PHP的文件

时间:2013-03-15 14:00:44

标签: php namespaces

我从PHP 4开始构建我的代码库。我使用require_once来导入类。现在使用PHP 5.3,我遇到了定义名称空间并导入它们。

我想更改源文件以使用导入(use语句)而不是使用require_once。这是正确的决定,我不确定。

我想这很容易。在类文件的顶部定义命名空间并进行搜索&替换使用它们的其他文件(将require_once替换为use)。在实践中可能会出现什么问题?

是否会有性能提升?在包含文件时,很明显PHP如何找到该文件。但是在导入名称空间时,这并不是那么明显。在搜索命名空间并通过PHP索引它们时是否存在性能损失?

1 个答案:

答案 0 :(得分:20)

userequire_once完全不同。 use根本没有进行任何文件导入。 use让您的生活更轻松。而不是每次都写Full\Path\To\Class,你可以做

use Full\Path\To\Class

$bar = new Class();

您仍有责任包含正确的文件。

您可以依靠PHP auto class loading

,而不是手动加载所有文件

您可以使用ComposerSymfony 2Zend2等正在处理所有自动加载内容的框架。

迁移现有代码以使用自动加载和use语句而不是include_once可能非常耗时。很可能没有搜索和替换解决方案。