在尝试使用root/app/model/test.php
时,使用加载App\Model\Test
的自动加载器是否合适?这样,每个类都应该根据其命名空间进行组织。
这是一个好方法吗?如果没有,为什么?你会建议什么?
我应该定义一个特定的数组namespace => path
,以确保我们没有加载意外的文件吗?这样我每次都需要设置像$map['App\Model\Test'] = 'root/app/model/test';
这样的东西,这基本上会删除自动加载器的所有乐趣。不是吗?
答案 0 :(得分:1)
$map
)时速度更快。这是因为它们不必运行包含路径来查找具有实例化类的文件。给它们一个绝对的文件名,然后你将它们从包含路径中分离出来。提供$map
还允许您以另一种方式组织您的类(而不仅仅是基于文件系统的命名)。除此之外,还有一些类映射生成器,您可以在之前运行以实际实现此目的,而不必在每次重命名或移动某些类时手动执行此操作。但是,在开发过程中,使用标准自动加载逻辑(没有类映射)会更方便,因为保持同步文件和在其中声明的类可能会非常繁琐,并且与开发本身几乎没有关系。减少样板代码的数量并不是自动装载器的唯一目的:
include_once
和require_once
在自动加载中仅