thinkphp5源码剖析系列2-配置文件

Posted cl94

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp5源码剖析系列2-配置文件相关的知识,希望对你有一定的参考价值。

前言

tp5的配置种类包含四个分类

  • 惯例配置

    核心框架内置的配置文件(thinkphp/convention.php),无需更改。

  • 应用配置

    每个应用的全局配置文件(项目根目录下app/config目录下的文件)。

  • 模块配置

    每个模块的配置文件(相同配置参数会覆盖应用配置。)比如index模块app/index/config/database.php

  • 动态配置

    主要指在控制器或行为中进行(动态)更改配置。建议少用

以上配置优先级越来越高

ArrayAccess相关知识

如果你的类实现了ArrayAccess接口,那么这个类的对象就可以使用$foo[‘xxx‘]这种结构了。

$foo[‘xxx‘] 对应调用offsetGet方法。

$foo[‘xxx‘] = ‘yyy‘ 对应调用offsetSet方法。

isset($foo[‘xxx‘]) 对应调用offsetExists方法。

unset($foo[‘xxx‘]) 对应调用offsetUnset方法。
具体实现:

<?php
namespace lib;
class ArrayObj implements ArrayAccess{
    private $arr = [
        ‘name‘ => ‘cl‘,
        ‘age‘ => ‘25‘
    ];
    public function offsetExists( $offset ) {
        return isset($this->arr[$offset]);
    }

    public function offsetGet( $offset ) {
        return $this->arr[$offset];
    }

    public function offsetSet( $offset, $value ) {
        return $this->arr[$offset] = $value;
    }

    public function offsetUnset( $offset ) {
        unset( $this->arr[$offset]);
    }
}

以上是关于thinkphp5源码剖析系列2-配置文件的主要内容,如果未能解决你的问题,请参考以下文章

C语言源码剖析与实现——strtok()系列函数实现

Netty系列・高级篇Netty核心源码解析

Spring读源码系列番外篇---03---PropertyResolver的结构体系剖析---下

Mybatis 系列2

thinkphp5 源码分析二 框架引导

Nginx 模块自主开发六:源码剖析配置文件解析过程