php如何进行框架源码追踪,记录一次优化thinkphp框架源码的过程

在之前阅读到框架加载源码的过程中,看框架源码存在以下问题,于是咔咔就手动的进行了一次简单的优化,可以看看思路哈!不建议大家直接去做更改哈!❞

在thinkphp/library/think/Config.php中方法loadFile这里看起来是不是有点不太优雅了。

既然在方法最后使用parse方法,也就是之前提到的工厂模式加载其它类型的配置文件。

那么为何不让这个工厂模式也加载PHP和yaml类型的配置文件。

a79d3a519d912deac74b3930d6da7df3.png此时就需要在thinkphp/library/think/config/driver这个目录建立php文件和yaml文件了。

首先建立一个php文件。

并且仿照其它三个类型文件,在php文件类型中只需要判断是否为文件,然后把文件引入进来即可。

在框架中PHP类型的配置文件都是数组形式的,所以在Php.php文件中parse方法直接返回config属性即可。

081f3f594db62da272457092b326e540.png开始开心的测试吧!之前在env的文件中配置了CONFIG_EXT这个值为yaml。

也就是说读取config目录下的配置文件时,只能读取扩展为yaml类型的文件。

所以需要先把这个值给改回来,等后面把yaml类型的工厂类写好之后就可以使用了。

为了测试方便在config目录下添加一个新的配置

6f7ea4b9f04e008db2a2eb62c4e2f237.png然后把config类中的lodeFile方法中判断php和yaml类型的代码注释掉049265e562ce42d1def30110120dab1f.png在这里插入图片描述

在控制器读取config/app.php配置

4134d93337fa54e9bf4ae42ef3ac384d.png打印结果

打印出来的结果没有任何瑕疵,也就说我们进行简单优化的代码并没有不适之处。

31f2f34d0a947c5eaa0aba0f32c58818.png至于yaml也是一样的道理,只需要把最终的数据转为数组返回就行了。

589e1ae6a81f8da8fd8554011528af34.png以上就是咔咔对框架配置文件加载底层源码优化的解析过程,如有不适之处,可以评论区指出来。❝

坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。❞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值