第四课 TP5框架配置详解

 

4.1 为什么需要配置文件

通常在框架当中很多的固定的参数,初始化参数,并不是我们直接在使用时添加,一些通用的参数,需要固定的位置存放,然后调用时到固定的地方获取,而不是重复的定义

4.2 有哪些配置文件

惯例配置:核心框架内置的配置文件,无需更改。

应用配置:每个应用的全局配置文件(框架安装后会生成初始的应用配置文件),有部分配置参数仅能在应用配置文件中设置。

模块配置:每个模块的配置文件(相同的配置参数会覆盖应用配置),有部分配置参数模块配置是无效的,因为已经使用过。

动态配置:主要是指在控制器或者行为中进行(动态)更改配置,该配置方式只在当次请求有效,因为不会保存到配置文件中。

4.3 配置文件在哪

Thinkphp惯例配置存放在thinkphp/convention当中,所谓的惯例配置就是thinkphp根据一些用户惯用的配置去写的配置项

惯例配置:核心框架内置的配置文件

应用配置:每个应用的全局配置文件

模块配置:每个模块的配置文件

动态配置:(代码当中修改)主要是指在控制器或者行为中进行(动态)更改配置,该配置方式只在当次请求有效,因为不会保存到配置文件中。

4.4 系统配置文件说明

4.5 配置的格式

可以直接在相应的应用或模块配置文件中修改或者增加配置参数,如果你要增加额外的配置文件,直接放入应用或模块配置目录即可(文件名小写)。

4.5.1 数组定义

返回PHP数组的方式是默认的配置定义格式,例如:

return [
    // 默认模块名
    'default_module'         => 'index',
    // 禁止访问模块
    'deny_module_list'       => ['common'],
    // 默认控制器名
    'default_controller'     => 'Index',
    // 默认操作名
 'default_action'         => 'index'
]; 

配置参数名请使用小写的形式,定义多级

'info'=>[
        'name'=>'peter',
        'age'=>'18'
]

4.5.2 其他配置格式支持

默认的配置文件都是PHP数组方式,如果你需要使用其它格式的配置文件,你可以通过改变CONFIG_EXT环境变量的方式来更改配置类型。

支持的配置类型包括.ini.xml.json 、.yaml .php 在内的格式支持,配置后应用配置及模块配置必须统一使用相同的配置类型(了解,一般创建一种类型就可以)

4.5.3 创建一个.env格式的文件,在项目根目录

在框架应用加载的过程当中,会首先加载.env格式的配置,会去读取相关的配置信息(查看源码)

Ini格式的

4.5.4 环境变量配置和使用

我们通过学习Thinkphp5环境变量的配置,来搭建出符合我们平时开发中使用的运营环境,比如说开发环境,上线环境使用的配置是不一样的

注意,环境变量不支持数组参数,如果需要使用数组参数可以,使用下划线分割定义配置参数

4.5.5 获取环境变量的值可以使用下面的两种方式获取:

Env::get('database.username');
  Env::get('database.password');
 // 同时下面的方式也可以获取
  Env::get('database_username');
  Env::get('database_password');
/ 获取环境变量 如果不存在则使用默认值root
Env::get('database.username','root');

注意:环境变量当中的结果是大写的,但是获取的时候使用小写

4.6 配置有效性

并不是所有的配置都会有效果,某些配置在特定的文件目录下才会有效果

下列配置参数在模块配置中定义(包括动态配置)无效,而必须在应用配置中设置

由于架构设计原因,下面的配置只能在环境变量中修改。

4.7 配置获取

4.7.1 使用Config类获取

引入命名空间

use think\facade\Config;

读取配置信息

echo Config::get('配置参数1');

读取某个一级配置的所有配置参数

Config::get('app.');

判断是否存在某个设置参数:

Config::has('配置参数2');

4.7.2 使用助手函数获取

echo config('配置参数1');

支持获取多级配置参数值,直接使用(必须从一级开始写)

config('app.name1.name2')

4.8 动态设置

使用助手函数设置,只能在当前的请求当中有作用

config('配置文件名.配置参数','配置值');

动态设置的参数,最多支持二级

config([
      'title'=>'peter的网站',
      'info'=>'简介信息'
     ],'app');

4.9 配置的优先级

ThinkPHP遵循惯例重于配置的原则,系统会按照下面的顺序来加载配置文件(配置的优先顺序从右到左)。

会覆盖掉之前的配置

 

4.10 配置文件加载原理解析(了解)

通过分析thinkphp5.1的源码了解下框架的配置文件,是什么时候读取到的,为什么我们能在框架当中读取配置文件当中的内容,以及配置的优先级顺序

start.php当中加载惯例配置

执行run方法

执行initialize

加载环境变量配置

加载应用配置以及模块配置

转载于:https://www.cnblogs.com/studyandstudy/p/10353309.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值