我从PHP 4开始构建我的代码库。我使用require_once
来导入类。现在使用PHP 5.3,我遇到了定义名称空间并导入它们。
我想更改源文件以使用导入(use
语句)而不是使用require_once
。这是正确的决定,我不确定。
我想这很容易。在类文件的顶部定义命名空间并进行搜索&替换使用它们的其他文件(将require_once
替换为use
)。在实践中可能会出现什么问题?
是否会有性能提升?在包含文件时,很明显PHP如何找到该文件。但是在导入名称空间时,这并不是那么明显。在搜索命名空间并通过PHP索引它们时是否存在性能损失?
答案 0 :(得分:20)
use
和require_once
完全不同。 use
根本没有进行任何文件导入。 use
让您的生活更轻松。而不是每次都写Full\Path\To\Class
,你可以做
use Full\Path\To\Class
$bar = new Class();
您仍有责任包含正确的文件。
您可以依靠PHP auto class loading。
,而不是手动加载所有文件您可以使用Composer或Symfony 2或Zend2等正在处理所有自动加载内容的框架。
迁移现有代码以使用自动加载和use
语句而不是include_once
可能非常耗时。很可能没有搜索和替换解决方案。