php5 配置文件,thinkphp5学习笔记(二)配置文件

85db15254e57

配置目录

配置文件

1.应用配置文件 application\config.php

2.模块配置文件 application\index\config.php

3.index.php中自定义配置目录

define('CONF_PATH',__DIR__.'/../config/');

config\config.php

在config目录中新建index\config.php,对应index模块。

在config目录中新建扩展配置目录extra及自定义文件,文件名就是配置名,内容是配置值。

也可以在模块新建扩展配置项,eg:index\extra\test.php

无论采用哪一种配置目录,最终都会与应用配置文件合并输出

配置文件格式

1.Array数组键值对 默认格式

2.ini名值对 入口文件:define('CONF_EXT','.ini')

3.xml标签对 入口文件:define('CONF_EXT','.xml')

4.josn对象属性名值对 入口文件:define('CONF_EXT','.json')

场景配置

在不同的环境下,使用不同的配置项。

实现步骤:

1.修改应用或模块配置文件中的'app_status',将值设置为场景名称,如:home

2.在与该配置文件同级的目录下,创建于场景名称同名的配置文件,如:home.php

3.再次执行,将会自动根据场景配置文件(home.php),更新当前应用的配置文件。

模块配置

1.模块可以有自己的配置文件,独立配置文件和场景配置文件

2.模块配置的优先级高于应用配置,相同配置项会覆盖掉应用中的配置项

3.模块默认配置文件名:config.php

4.模块默认独立配置文件有两个:database.php validate.php

5.模块场景配置文件名,根据'app_status'参数值确定

加载其他位置的配置文件

1.如果配置文件是php文件

\think\Config::load(APP_PATH.'完整文件名'); //使用绝对路径加载,默认返回数组

2.如果配置文件是其他格式:ini、xml、json等

\think\Config::parse(APP_PATH,'完整文件名','ini'); //使用绝对路径加载,默认返回数组

注意:读取其他配置的文件,都是冬天加载,需要在控制器中的方法中执行加载

namespace app\index\controller;

class Index

{

public function index()

{

\think\Config::parse(APP_PATH.'../config/newconf/conf.ini','ini');

dump(\think\Config::get());

}

}

如何正确读取配置项

1.读取配置项

* 类方法 Config::get('配置参数'),参数为空则是获取全部配置项

* 使用助手函数 config('配置参数'),参数说明和Config::get()完全一样

* 读取二级配置项,参数与值之间用 . (点)进行连接

2.判断某配置项是否存在

* 类方法 Config::has('配置参数'); //返回布尔值

* 助手函数 config('?配置参数'); //返回布尔值

动态配置 如何正确设置配置项

1.类方法 \think\Config.php

* 逐个配置 Config::set('配置参数','参数值');

* 批量配置 Config::set(数组);

* 二级配置 Config::set('配置参数',数组);

2.助手函数 config()

* 逐个配置 config('配置参数','参数值');

* 批量配置 config(数组);

* 二级配置 config('配置参数',数组);

独立配置文件

1.用户自定义的独立配置文件必须放在应用或模块下面的extra目录下面

2.默认独立配置文件database.php[数据库],validate.php[验证规则]既可以

放在extra下面,也可放在与应用或模块同级的目录下面。如果放在extra目录

下面,优先级大于放在应用或模块的同级目录下面

3.文件名就是配置名称,文件返回一个数组

4.独立配置全部是二级配置

配置文件加载的优先级

惯例配置 < 应用配置 < 模块配置 < 动态配置(级别最高)

在应用配置和模块配置中:应用配置 < 独立配置 < 场景配置

配置项的作用域

1.作用域与命名空间的概念类似,就是配置项的可见范围

2.作用域的表现形式上与二维数组是一样的

3.切换作用域使用 Config::range('作用域')

4.可以将独立配置项归纳到作用域进行管理,也可以动态设置

namespace app\index\controller

use Think\Config;

class Index

{

public function index()

{

//设置一组配置项

$config = [

'user_name'=>'user',

'user_age'=>'18',

];

//批量设置,写入user作用域

Config::set($config,'user');

//输出全部配置项,作用域相当于二级配置项的名称

dump(Config::get());

//用数组的方式来配置作用域的值

Config::set('user.user_name','php');

//查看设置好的值

dump(Config::get('user.user_name'));

//切换作用域:Config::range()

Config::range('_sys_');

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值