【思路】查看php框架tp5、yii2、laravel源码的思路

时间:2022-10-21 09:52:21

建议自己先做一遍框架,在看源码就会更方便了

等有时间咯,在写分析各个框架的思路吧


此思路是看第3方类库或某个框架文档特少的方法:

1、根据想要实现的功能名:找类
2、找到后挨着看方法:找到方法

3、调用该方法测试下,一般只看这2点一般就够了

3.1、看该方法得注释需要传什么参数

3.2、看该方法得注释返回什么数据类型。

这2点没问题一般也就对了,具体代码的实现有空咯在看


TP5:

学习tp5之助手函数(文档对应手册-》附录-》助手函数)

学习tp5之常量(文档对应手册-》附录-》常量参考)

学习tp5之配置文件(文档对应手册-》配置)

学习tp5之路由(文档对应手册-》路由)

学习tp5之请求和响应(文档对应手册-》请求)

学习tp5之响应

学习tp5之控制器原理和使用(文档对应手册-》控制器)

学习tp5之ORM操作数据库(文档对应手册-》数据库)

学习tp5之模型(文档对应手册-》模型)

学习tp5之视图(文档对应手册-》视图)

学习tp5之验证(文档对应手册-》验证)

学习tp5之缓存(文档对应手册-》杂项-》缓存)

学习tp5之上传图片(文档对应手册-》杂项-》上传)

学习tp5之日志(文档对应手册-》日志)


源码解析:

1、入口文件(只有这个没有命名空间)
- 定义应用目录的常量
- 引入启动文件
2、启动文件
- 引入基础文件
- 定义目录常量
- 定义环境常量
- 调用自动加载
- 加载类库映射文件(应该是普通类)
- 加载composer
- 加载/extend
- 调用错误和异常处理
- 错误、异常、异常中止
- 加载配置文件
- 设置thinkphp/convertion.php
- 启动框架
- 加载控制器/方法、语言、监听 app_dispatch、路由检测、记录路由和请求信息、监听 app_begin、检查请求缓存
- 清空加载了的类的实例化、输出数据到客户端(自动识别响应类型)、监听app_end
- 返回的是1个response对象
- 调用response->send方法
- 监听response_send  
3、看配置文件的核心类,看看他是怎么获取的,因为好多地方都要获取配置文件,所以先看这个 

 laravel:

优点:优雅,框架结构组织清晰(抽象了中间件,任务,服务等模块),提供的artisan开发工具开发效率高,社区活跃完善,并且提供了简化的轻量级框架lumen
缺点:貌似代码有些过于优雅丧失了一些性能