https://github.com/laruence/yaf
https://github.com/laruence/yaf-examples
yaf.c
yaf.c 这一个文件中,主要做了如下的工作:
定义各个生命周期的回调函数(MINIT/RINIT/RSHUTDOWN/MSHUTDOWN)
定义 ini 中可配置的项目
声明依赖
加载所需模块
yaf_application.c
这一文件主要定义了 Yaf_Application 这一个 class。
定义的内容包括:
类名与命名空间名称
类属性与访问权限控制(Yaf_Application 这一个 class 被定义为 final class,即不能再被继承)
类的方法与访问权限控制
除了上述内容,还实现了配置项解析和初始化功能。下面会对一些重要的方法进行简单的描述。
__construct()
构造方法中主要完成了如下的一些工作:
解析构造方法中的参数
初始化 request/dispatcher/loader 等对象
读取解析配置文件
从手册上可以得知构造方法的原型为:
1
2
public void Yaf_Application::__construct(mixed $config,
string $section = ap.environ);
根据传递的字符串作为本应用 ini 配置文件的文件名,进行解析。
第二个参数 section 存在的情况下,会只读取 section: 开头的配置项目。
https://liaoaoyang.cn/articles/2017/09/17/yaf-source-code-overview-i/
https://www.laruence.com/php-internal
划阅读鸟哥的yaf源码,从这几部分入手:
搭建clion / qt 调试环境,目标:能正常跑起来php+yaf框架,能代码提示跳转
结合相关php扩展开发教程了解yaf框架结构
对yaf框架代码进行断点调试
https://my.oschina.net/flyrobin/blog/1823409
https://www.jianshu.com/p/130389235abc
https://github.com/qloog/yaf-source-with-annotated