自PHP 4开始,我已经开始构建自己的代码库。我已经使用require_once
来导入类。现在在PHP 5.3中,我遇到了定义名称空间并导入它们。导入命名空间与包含PHP中的文件
我想更改我的源文件以使用导入(use
语句)而不是使用require_once
。这是正确的决定,我不确定。
我想这很容易。在类文件顶部定义名称空间并执行搜索&替换使用它们的其他文件(将require_once
替换为use
)。在练习中可能会出现什么问题?
而且会有性能改善吗?在包含文件时,PHP很明显是如何找到该文件的。但是在导入命名空间时,它并不那么明显。在搜索命名空间和使用PHP编制索引时是否会出现性能损失?
谢谢,我没有注意到自动类加载。然而,这听起来像一个不好的做法,只能用解释器语言来实现。它增加了开销,如搜索类的整个路径,并导致不良文档,你不知道哪个文件使用什么。 – bkilinc 2013-03-15 18:05:23
我从来没有看到任何性能问题,因为auf auto class loading。如果你使用上述工具,你可以看到他们做了很多工作以确保查找速度快。毕竟Java在十多年来取得了这样的成功。最后但并非最不重要的:依靠include/class加载的简单规则可以大大简化代码。 – BetaRide 2013-03-16 05:53:50
@bkilinc:PSR-0等标准允许您在整个应用程序中使用自动加载的一致规则。如果整个图书馆使用相同的标准,则可以为您的整个应用程序使用单个自动加载器。这允许您编写非常模块化的OOP代码,而不必担心依赖关系,同时将性能开销降至最低。 – 2014-07-23 12:38:45