三、自定义文件如何实现类的自动加载
先创建一个文件夹kaka
这时在控制器index中引入文件Kaka.php
直接进行访问,这时这个类肯定会报错,那么我们应该怎么操作一下,就可以直接访问呢!
这个时候就提现到源码的重要性了,还记得在自动加载的register函数中,加载过extend目录
这时在加一个kaka这个目录,直接进行访问一下
没毛病,直接就出来了。一切OK
在这里在聊一下关于extent的加载方式
在之前聊注册自动加载类库目录只是说明了一下只是把路径存到了$fallbackDirsPsr4属性,没有细细说,接下来就是说明这些了。
阅读源码只能是实现那然后查看那
只要是定义的类都会进去到autoload进行自动加载
同样也会进入到findFile这个方法
在findFile这个方法中可以看到这段代码,这个属性是不是很熟悉,就是自动加载extend目录时添加到$fallbackDirsPsr4属性的。
当在findFile中打印参数class时看一下数据
很清楚地可以看到test\Kaka这个类
此时在打印一下这个$fallbackDirsPsr4属性里边返回的file
然后就是使用__include_file来直接includeD:\phpstudy_pro\WWW\ThinkPHPSourceCodeAnalysis\kaka\test\Kaka.php我们定义的文件。
以上的这个自定义文件如何实现类的自动加载,并且也就是extend的加载方式
四、总结
关于类自动加载的所有流程就完成了,如有错误之处可以在评论区哦!