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

简介: ThinkPHP你必须要掌握的配置加载

前言

想了很久终于要开始系列文章的编写了,期望是写出提升和面试都可以搞定的系列文章。

当你看到本文时,如果你发现咔咔没有编写到的面试热点问题或者技术难点,期待评论区指出,一起完善。



一、配置文件的种类


image.png


在ThinkPHP中有四类配置文件,你知道多少呢!不知道也没关系咔咔带你在看一次。


这四种配置文件分别为惯例配置、应用配置、模块配置、动态配置。


在这里需要说明一下,一般开发中惯例配置和动态配置是不会去使用的,尤其动态配置更不会去使用。


动态配置是直接使用Config::set(“设置动态配置文件”)来进行设置的,所以这个东西不要去用,一定不要去用,否则项目后期怎么去管理。


关于这四类配置文件咔咔直接用一幅图来给大家展示,就不过多说明了,本文的重点不是给大家介绍这玩意。


关于ThinkPHP5.1取消了单独的config文件,将应用配置修改到config下的app.php文件中。


新增了模块配置,模块配置也是在config目录下,例如你在app目录下有俩个模块,分别为index、admin这俩个模块,那么就可以直接在config目录下创建admin、index目录,然后创建对应模块的配置文件即可。


这四种配置文件的优先级就是上图的排列顺序,管理配置、应用配置、模块配置、动态配置


二、学习使用ArrayAccess

在文件thinkphp/library/think/Config.php,类Config实现了一个接口为ArrayAccess。


这个时候你是不是有疑问了,这个类到底是干嘛的,为什么要去了解和学习它!带着这个疑问继续往下探寻答案吧!


到这个接口里边一探究竟。


在这个接口里边有四个接口需要实现分别为


  • offsetExists 检测偏移位置是否存在
  • offgetGet 获取一个偏移位置的值
  • offsetSet 设置一个偏移位置的值
  • offsetUnset 删除一个偏移位置的值


image.png

这几个函数放到这是不是有点懵呢!别着急,这就给你解答


这几个方法在Config中也进行实现,但是里边使用了几个方法,根据上边对方法的作用说明后。


像set、has、remove、get想想大家就知道是什么意思了。


image.png


接下来,咱们自己来实现一下这个类,给大家演示一下这个类用处到底是什么。ArrayAccess这个类不仅是TP大量使用,在laravel中也是大量存在,所以需要好好学习这个类的作用和思想。


需要在kaka目录下创建一个文件TestArrayAccess文件,并且设置一个属性,在实现ArrayAccess类。


至于我自己创建的这个文件夹kaka为什么会执行自动加载就是上一期在类的自动加载中实现的。


如若不会的话可以把文件先放置到extend目录下即可。


image.png

接着来到application/index/controller/Index.php控制器使用上图实现的方法


image.png


打印结果


image.png


这里在使用offsetGet打印的结果为kaka应该都明白怎么回事了吧!其余俩个方法就不去演示了,相信你也已经明白了。


所以说这个ArrayAccess类就是提供像访问数组一样访问对象的接口。



相关文章
|
PHP
PHP 文件加载简单使用
PHP 文件加载简单使用
65 0
|
设计模式 运维 安全
ThinkPHP你必须要掌握的配置加载(6)
ThinkPHP你必须要掌握的配置加载
203 0
ThinkPHP你必须要掌握的配置加载(6)
|
PHP 容器
ThinkPHP你必须要掌握的配置加载(3)
ThinkPHP你必须要掌握的配置加载
145 0
ThinkPHP你必须要掌握的配置加载(3)
|
运维 关系型数据库 MySQL
ThinkPHP你必须要掌握的配置加载(2)
ThinkPHP你必须要掌握的配置加载
194 0
ThinkPHP你必须要掌握的配置加载(2)
|
XML JSON 数据处理
ThinkPHP你必须要掌握的配置加载(4)
ThinkPHP你必须要掌握的配置加载
132 0
ThinkPHP你必须要掌握的配置加载(4)
|
PHP
ThinkPHP你必须要掌握的配置加载(5)
ThinkPHP你必须要掌握的配置加载
166 0
ThinkPHP你必须要掌握的配置加载(5)
|
PHP
ThinkPHP自动加载Loader源码分析(2)
ThinkPHP自动加载Loader源码分析
159 0
ThinkPHP自动加载Loader源码分析(2)
|
PHP
ThinkPHP自动加载Loader源码分析(1)
ThinkPHP自动加载Loader源码分析
162 0
ThinkPHP自动加载Loader源码分析(1)
|
PHP
ThinkPHP自动加载Loader源码分析(4)
ThinkPHP自动加载Loader源码分析
133 0
ThinkPHP自动加载Loader源码分析(4)
|
PHP
ThinkPHP自动加载Loader源码分析(3)
ThinkPHP自动加载Loader源码分析
319 0
ThinkPHP自动加载Loader源码分析(3)