15

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

我想将我的源文件更改为使用 importing (use语句) 而不是使用require_once. 这是正确的决定吗,我不确定。

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

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

4

1 回答 1

27

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

use Full\Path\To\Class

$bar = new Class();

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

您可以依赖PHP 自动加载类,而不是手动加载所有文件。

您可以使用Composer或框架,如Symfony 2Zend2,它们会为您处理所有自动加载的内容。

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

于 2013-03-15T14:24:59.820 回答