这可能非常微不足道,但因为我是新手,我只是不明白。
我可以在每个文件的开头看到App::uses
的概念,但该文件如何知道App的位置?
在任何地方都没有包含,据我所知,lib中有一个自动加载器,这是否意味着一个文件中的一个自动加载器负责加载所有类(如果实例化)?
我试过阅读this part of the manual,但仍然无法理解它是如何工作的。 另请阅读spl_autoload_register函数本身的一些资料,但无济于事。
如果有人能帮助我理解文件如何与彼此通信,我真的很感激。
答案 0 :(得分:0)
看看App::load(),它的doc块解释了它:
处理自动类加载的方法。它将寻找每一个 class'包使用App :: uses()定义并使用此信息 将包名称解析为从中加载类的完整路径。 每个类的文件名应遵循类名。例如, 如果类名为
MyCustomClass
,则文件名应为MyCustomClass.php
。
查看框架核心文件lib / Cake / basics.php:
spl_autoload_register(array('App', 'load'));
它将该方法注册为自动加载器。