ThinkPHP你必须要掌握的配置加载(6)

本文涉及的产品
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: ThinkPHP你必须要掌握的配置加载

十一、解析如何获取config如何获取配置

都知道在获取配置信息的时候直接使用\Config::get()就可以获取到配置文件的信息。


接下来咔咔就来剖析一下获取配置的流程。


image.png


框架给提供了几个方法来获取配置信息。


\Config::get(‘配置参数’);

\Config::get(‘配置文件’);

\Config::pull(‘配置文件’);

这其中估计使用第一种的就很少了,第一种的方式就是直接获取所有配置文件中的对应的配置。


例如:想获取config目录下的应用名称配置


image.png


就可以直接用\Config::get(‘app_name’);来直接获取


image.png


image.png

那么这个流程是怎么样的呢!


当直接获取配置参数时,走的代码流程就只有这俩个。


第一段是给加上前缀app


第二段是循环在config文件中获取数据。


这段代码如果你直接断点调试的话是看不到什么效果的,咔咔把这段代码给大家移到外面去执行,就会看的很清楚了。


image.png

image.png



咔咔将这段代码给移到了index控制器中,这样就可以看到的很清晰了

image.png


先看打印结果,确认没啥问题


image.png


其实这里的代码如果放在源码中执行你会看到很多其它的信息,会很影响信息的解读的。


但是咱们移植出来后,就可以确保代码的运行时没有其它的杂乱信息,有利于对信息的正确解读。


然后紧接着看这段代码,这段代码之前咔咔看的时候感觉没什么,但是越看你会越发现这块代码的设计很是优秀。


为什么会这样说呢!


首先这段代码会走第一次循环就是执行app,这次执行会在全部的config中获取出键值为app的配置信息。


然后把值再次赋值给config变量,执行第二次循环为app_name。


这里循环获取数据就是在第一次循环获取数据的基础上得到的。也就是第二次是在$config[‘app’]下获取的数据。


由此可见这段代码设计的是多好啊!


image.png


至于其它俩个方法就交给你们了,可以简单的试着跟着咔咔一样把代码移植出来,然后一步一步的解读。


你就会发现代码的优美之处,看的多了,对于以后自己写代码也会提供很多的思路的。


十二、总结

对于框架中config源码的解析就到这里结束了,其实源码的解析并不是很多,而是用了大量的篇幅来介绍了间接使用的一些技术。


虽说这些技术在这个已经成型的框架中不能再进行好好的利用,但是最起码让我们知道了他们每一个扩展的作用。


例如Yaconf对于项目配置这块会有很大的帮助,可以让配置文件跟项目分离,确保项目安全和跟运维之间的协同。


在例如开篇说的ArrayAccess,这个就是提供像访问数组一样访问对象的接口而已,这个也就是一种好的思想,同理在以后得开发中也可以借鉴这种思想。


在配置文件这一篇中,咔咔认为最重要的就是使用工厂模式加载的不同类型配置文件,在这一节中咔咔也说了后期会在出一篇文章在进行解析的,这一节点的文章如果没事的话真的可以好好的阅读一下。


这个也是目前在阅读源码的过程中直接碰到的第一个设计模式,后边会遇到越来越多的设计模式,遇到在进行解析


之前跟着咔咔一起实现的优化框架源码的过程中,这个配置一定要改过来,否则你需要把框架所有的配置类型都需要改为对应的。

image.png

相关文章
|
2月前
|
PHP
thinkphp修改分页配置文件
thinkphp修改分页配置文件
23 0
|
PHP
ThinkPHP你必须要掌握的配置加载(5)
ThinkPHP你必须要掌握的配置加载
142 0
ThinkPHP你必须要掌握的配置加载(5)
|
PHP
ThinkPHP你必须要掌握的配置加载(1)
ThinkPHP你必须要掌握的配置加载
125 0
ThinkPHP你必须要掌握的配置加载(1)
|
运维 关系型数据库 MySQL
ThinkPHP你必须要掌握的配置加载(2)
ThinkPHP你必须要掌握的配置加载
172 0
ThinkPHP你必须要掌握的配置加载(2)
|
PHP 容器
ThinkPHP你必须要掌握的配置加载(3)
ThinkPHP你必须要掌握的配置加载
124 0
ThinkPHP你必须要掌握的配置加载(3)
|
XML JSON 数据处理
ThinkPHP你必须要掌握的配置加载(4)
ThinkPHP你必须要掌握的配置加载
119 0
ThinkPHP你必须要掌握的配置加载(4)
|
PHP
ThinkPHP自动加载Loader源码分析(1)
ThinkPHP自动加载Loader源码分析
140 0
ThinkPHP自动加载Loader源码分析(1)
|
PHP
ThinkPHP自动加载Loader源码分析(4)
ThinkPHP自动加载Loader源码分析
112 0
ThinkPHP自动加载Loader源码分析(4)
|
PHP
ThinkPHP自动加载Loader源码分析(3)
ThinkPHP自动加载Loader源码分析
212 0
ThinkPHP自动加载Loader源码分析(3)
|
PHP
ThinkPHP自动加载Loader源码分析(2)
ThinkPHP自动加载Loader源码分析
144 0
ThinkPHP自动加载Loader源码分析(2)