前言
最近在学习TP5.1.37 框架内核,想把自己所学到的写下来,这样可以检测自己到底学到了多少,理解了多少。写的有不对的地方或者有不严谨的地方,还望大佬指正,谢谢。
知识补充
1. Yconf 扩展
Yconf是php的一个扩展,为了高性能读取配置文件。文件类型如php.ini文件,格式为key=value,当php进程当做apche模块启动,或者当php-fpm进程启动时,会把文件内容加载到内存中,不可修改,所以读取性能相对传统的文件配置高一些。当修改了文件里的配置时,需要重启php-fpm进程或者apache才可生效。当安装完此扩展后,php会有两个函数,Yaconf::has($key) 检测配置是否存在;Yaconf::get($key[, $defult]) 取出配置文件中的值。链接:http://www.laruence.com/2015/06/12/3051.html
2. yaml扩展
一般也是用来读取特定格式的配置文件的。链接:https://www.cnblogs.com/roverliang/p/8299106.html
3. php中内置的 ArrayAccess接口
ArrayAccess是php内置的一个接口,一个类继承后并实现其中的四个抽象方法:offsetExists、offsetSet、offsetGet、offsetUnset 就可以像访问数组一样 访问这个对象中某个的属性。
正文
1. index.php入口文件取到app实例执行run方法
入口文件中:Container::get('app')->run()->send(); 意思是利用框架容器类取app实例,容器、依赖注入(控制反转)下章再讲,我们查看App类中run()方法中执行了 initialize() 方法。
2. App类中 initialize() 方法
我们直接看加载配置文件的代码
1)183行