这三个班级有什么不同?他们似乎都有类似的功能。有人可以清楚地向我解释这个,Zend_Application会自动使用哪些?
Zend_Application_Module_Autoloader
Zend_Loader_Autoloader_Resource
Zend_Loader_Autoloader
答案 0 :(得分:2)
公然复制参考指南。请指出您理解其概念的任何麻烦,以便我们提供其他解释。
Zend_Loader_Autoloader为Zend Framework引入了全面的自动加载解决方案。它的设计考虑了几个目标:
- 提供真正的命名空间自动加载器。 (以前的化身拦截了所有用户名称空间。)
- 允许将任意回调注册为自动加载器,并将它们作为堆栈进行管理。 (在撰写本文时,这克服了spl_autoload的一些问题,它不允许重新注册使用实例方法的回调。)
- 允许对命名空间进行乐观匹配,以提供更快的类解析。
Zend_Loader_Autoloader_Resource
资源自动加载器旨在管理符合Zend Framework编码标准准则的命名空间库代码,但在类名和目录结构之间没有1:1映射。它们的主要目的是促进自动加载应用程序资源代码,例如特定于应用程序的模型,表单和ACL。
资源自动加载器在实例化时向自动加载器注册,并与它们关联的命名空间一起注册。这使您可以轻松地在特定目录中命名代码,并且仍然可以获得自动加载的好处。
Zend_Application_Module_Autoloader
Zend Framework附带Zend_Loader_Autoloader_Resource的具体实现,该实现包含资源类型映射,涵盖了Zend Framework MVC应用程序的默认推荐目录结构。