第四周的学习心得——TP配置

本文详细介绍了ThinkPHP5.0的配置管理,包括配置目录结构、配置加载顺序、配置格式、动态配置、独立配置文件的使用,以及环境变量配置的设定和读取。读者将了解到如何在TP5中进行各种配置操作,如设置和获取配置参数,以及如何利用环境变量适应不同部署环境。
摘要由CSDN通过智能技术生成

配置目录
系统默认的配置文件目录就是应用目录( APP_PATH ),也就是默认的 application 下
面,并分为应用配置(整个应用有效)和模块配置(仅针对该模块有效)。
├─application 应用目录
│ ├─config.php 应用配置文件
│ ├─database.php 数据库配置文件
│ ├─route.php 路由配置文件
│ ├─index index模块配置文件目录
│ │ ├─config.php index模块配置文件
│ │ └─database.php index模块数据库配置文件

如果不希望配置文件放到应用目录下面,可以在入口文件中定义独立的配置目录,添加
CONF_PATH 常量定义即可,例如:
// 定义配置文件目录和应用目录同级
define(‘CONF_PATH’, DIR.’/…/config/’);
配置目录下面的结构类似如下:
├─application 应用目录
├─config 配置目录
│ ├─config.php 应用配置文件
│ ├─database.php 数据库配置文件
│ ├─route.php 路由配置文件
│ ├─index index模块配置文件目录
│ │ ├─config.php index模块配置文件
│ │ └─database.php index模块数据库配置文件

扩展配置目录
如果你定义了 CONF_PATH 常量为config目录为例,扩展配置目录如下:
├─application 应用目录
├─config 配置目录
│ ├─config.php 应用配置文件
│ ├─database.php 数据库配置文件
│ ├─route.php 路由配置文件
│ ├─extra 应用扩展配置目录
│ ├─index index模块配置文件目录
│ │ ├─extra index模块扩展配置目录
│ │ ├─config.php index模块配置文件
│ │ └─database.php index模块数据库配置文件

扩展配置文件的文件名(不含后缀)就是配置参数名,并且会和应用配置文件中的参数进行合并。
配置格式
返回PHP数组的方式是默认的配置定义格式,例如:
//项目配置文件
return [
// 默认模块名
‘default_module’ => ‘index’,
// 默认控制器名
‘default_controller’ => ‘Index’,
// 默认操作名
‘default_action’ => ‘index’,
//更多配置参数
//…
];

使用二维数组来配置更多的信息,例如:
//项目配置文件
return [
‘cache’ => [
‘type’ => ‘File’,
‘path’ => CACHE_PATH,
‘prefix’ => ‘’,
‘expire’ => 0,
],
];

配置加载
惯例配置->应用配置->扩展配置->场景配置->模块配置->动态配置
读取配置
读取配置参数
设置完配置参数后,就可以使用get方法读取配置了,例如:
echo Config::get(‘配置参数1’);
系统定义了一个助手函数 config ,以上可以简化为:
echo config(‘配置参数1’);
读取所有的配置参数:
dump(Config::get());
// 或者 dump(config());
或者你需要判断是否存在某个设置参数:
Config::has(‘配置参数2’);
// 或者 config(’?配置参数2’);
如果需要读取二级配置,可以使用:
echo Config::get(‘配置参数.二级参数’);
echo config(‘配置参数.二级参数’);
动态配置
设置配置参数
使用 set 方法动态设置参数,例如:
Config::set(‘配置参数’,‘配置值’);
// 或者使用助手函数
config(‘配置参数’,‘配置值’);
也可以批量设置,例如:
Config::set([
‘配置参数1’=>‘配置值’,
‘配置参数2’=>‘配置值’
]);
// 或者使用助手函数
config([
‘配置参数1’=>‘配置值’,
‘配置参数2’=>‘配置值’
]);
独立配置
独立配置文件
配置文件支持分离(也称为扩展配置),只需要在公共配置文件配置
extra_config_list 参数(V5.0.1版本已经废除该写法)。
例如,不使用独立配置文件的话,数据库配置信息应该是在 config.php 中配置如下:
/* 数据库设置 /
‘database’ => [
// 数据库类型
‘type’ => ‘mysql’,
// 服务器地址
‘hostname’ => ‘127.0.0.1’,
// 数据库名
‘database’ => ‘thinkphp’,
// 数据库用户名
‘username’ => ‘root’,
// 数据库密码
‘password’ => ‘’,
// 数据库连接端口
‘hostport’ => ‘’,
// 数据库连接参数
‘params’ => [],
// 数据库编码默认采用utf8
‘charset’ => ‘utf8’,
// 数据库表前缀
‘prefix’ => ‘’,
// 数据库调试模式
‘debug’ => false,
],
如果需要使用独立配置文件的话,则首先在config.php中添加配置:
‘extra_config_list’ => [‘database’],
定义之后,数据库配置就可以独立使用 database.php 文件,配置内容如下:
/
数据库设置 */
return [
// 数据库类型
‘type’ => ‘mysql’,
// 服务器地址
‘hostname’ => ‘127.0.0.1’,
// 数据库名
‘database’ => ‘thinkphp’,
// 数据库用户名
‘username’ => ‘root’,
// 数据库密码
‘password’ => ‘’,
// 数据库连接端口
‘hostport’ => ‘’,
// 数据库连接参数
‘params’ => [],
// 数据库编码默认采用utf8
‘charset’ => ‘utf8’,
// 数据库表前缀
‘prefix’ => ‘’,
// 数据库调试模式
‘debug’ => false,
],
如果配置了 extra_config_list 参数,并同时在 config.php 和 database.php 文
件中都配置的话,则 database.php 文件的配置会覆盖 config.php 中的设置。
独立配置文件的参数获取都是二维配置方式,例如,要获取 database 独立配置文件的
type 参数,应该是:
Config::get(‘database.type’);
要获取完整的独立配置文件的参数,则使用:
Config::get(‘database’);
自动读取扩展配置
版本要求 V5.0.1
5.0.1 以上版本支持自动读取扩展配置文件( extra_config_list 配置参数废弃),
只需要将扩展配置文件放入 application/extra 目录,即可自动读取。
自动读取的配置文件都是二级配置参数,一级配置名称就是扩展配置的文件名。
模块也可以支持自己的扩展配置文件,只需要放入 application/模块名/extra 下面就
可以自动加载。
系统默认加载的独立配置文件不在此列,包括:
文件名 描述
config 应用或者模块配置文件
database 数据库配置文件
tags 行为定义文件
场景名 应用场景配置文件
如果你更改了 CONF_PATH ,那么扩展配置文件目录应该是 CONF_PATH/extra ,模块
配置目录则变成 CONF_PATH/module/ ,模块的扩展配置目录则变成
CONF_PATH/module/extra 。
配置作用域
作用域
配置参数支持作用域的概念,默认情况下,所有参数都在同一个系统默认作用域下面。如果你的配置参数需要用于不同的项目或者相互隔离,那么就可以使用作用域功能,作用域的作用好比是配置参数的命名空间一样。
// 导入my_config.php中的配置参数,并纳入user作用域
Config::load(‘my_config.php’,’’,‘user’);
// 解析并导入my_config.ini 中的配置参数,读入test作用域
Config::parse(‘my_config.ini’,‘ini’,‘test’);
// 设置user_type参数,并纳入user作用域
Config::set(‘user_type’,1,‘user’);
// 批量设置配置参数,并纳入test作用域
Config::set($config,‘test’);
// 读取user作用域的user_type配置参数
echo Config::get(‘user_type’,‘user’);
// 读取user作用域下面的所有配置参数
dump(Config::get(’’,‘user’));
dump(config(’’,null,‘user’)); // 同上
// 判断在test作用域下面是否存在user_type参数
Config::has(‘user_type’,‘test’);
可以使用 range 方法切换当前配置文件的作用域,例如:
Config::range(‘test’);
环境变量配置
环境变量配置
ThinkPHP5.0 支持使用环境变量配置。
在开发过程中,可以在应用根目录下面的 .env 来模拟环境变量配置, .env 文件中的配置参数定义格式采用 ini 方式,例如:
app_debug = true
app_trace = true
如果你的部署环境单独配置了环境变量,那么请删除 .env 配置文件,避免冲突。
环境变量配置的参数会全部转换为大写,值为 null , no 和 false 等效于 “” ,值为
yes 和 true 等效于 “1” 。
ThinkPHP5.0默认的环境变量前缀是 PHP_ ,也可以通过改变 ENV_PREFIX 常量来重新设置。
注意,环境变量不支持数组参数,如果需要使用数组参数可以,使用下划线分割定义配置参数名:
database_username = root
database_password = 123456
或者使用
[database]
username = root
password = 123456
获取环境变量的值可以使用下面的两种方式获取:
Env::get(‘database.username’);
Env::get(‘database.password’);
// 同时下面的方式也可以获取
Env::get(‘database_username’);
Env::get(‘database_password’);
可以支持默认值,例如:
// 获取环境变量 如果不存在则使用默认值root
Env::get(‘database.username’,‘root’);
可以直接在应用配置中使用环境变量,例如:
return [
‘hostname’ => Env::get(‘hostname’,‘127.0.0.1’),
];
环境变量中设置的 app_debug 和 app_trace 参数会自动生效(优先于应用的配置文
件),其它参数则必须通过 Env::get 方法才能读取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值