# 配置

以下配置遵循ThinkPHP6.0配置规则,数据配置为框架应用新增并保存于数据库的配置

# 系统配置

配置分为系统配置和应用配置,系统配置对所有应用有效。

配置目录

├─app(应用目录)
├─config(框架配置目录)
│  ├─app.php            应用配置
│  ├─cms.php            系统配置
│  ├─cache.php          缓存配置
│  ├─console.php        控制台配置
│  ├─cookie.php         Cookie配置
│  ├─database.php       数据库配置
│  ├─filesystem.php     文件磁盘配置
│  ├─lang.php           多语言配置
│  ├─log.php            日志配置
│  ├─middleware.php     中间件配置
│  ├─route.php          路由配置
│  ├─session.php        Session配置
│  ├─trace.php          Trace配置
│  ├─view.php           视图配置
│  └─ ...               更多配置文件
│  

# 应用配置

每个应用可以有独立配置文件,相同的配置参数会覆盖全局配置。

├─app(应用目录)
│  ├─app1 (应用1)
│  │   └─config(应用配置)
│  │   	 ├─app.php            应用配置
│  │  	 ├─cache.php          缓存配置
│  │   	 ├─cookie.php         Cookie配置
│  │   	 ├─database.php       数据库配置
│  │  	 ├─lang.php           多语言配置
│  │  	 ├─log.php            日志配置
│  │     ├─route.php          路由配置
│  │   	 ├─session.php        Session配置
│  │ 	 ├─view.php           视图及模板引擎配置
│  │   	 ├─trace.php          Trace配置
│  │ 	 └─ ...               更多配置文件
│  │ 
│  └─ app2... (更多应用)
│  

# 环境配置

可以在根目录下定义一个特殊的.env环境变量文件,用于在开发过程中模拟环境变量配置,
.env文件中的配置参数定义格式采用ini方式(该文件建议在服务器部署的时候忽略)

APP_DEBUG = true
AUTH_DEBUG = true
APP_TRACE = true

[APP]
DEFAULT_TIMEZONE = Asia/Shanghai

[DATABASE]
TYPE = mysql
HOSTNAME = localhost
DATABASE = demo_database
USERNAME = demo_username
PASSWORD = demo_password
HOSTPORT = 3306
CHARSET = utf8

[LANG]
default_lang = zh-cn

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

配置参数 默认值 描述
APP_TRACE false 开启运行日志
APP_DEBUG false 开启调试模式
AUTH_DEBUG false 开启权限调试
  • 如果你的部署环境单独配置了环境变量( 前缀使用PHP_),那么请删除.env配置文件,避免冲突。
  • 环境变量配置的参数会全部转换为大写,值为 off,no 和 false 等效于 布尔值false,值为 yes 、on和 true 等效于 布尔值的true。

注意,环境变量不支持数组参数,如果需要使用数组参数可以,可以使用

[DATABASE]
USERNAME =  root
PASSWORD =  123456

如果要设置一个没有键值的数组参数,可以使用

PATHINFO_PATH[] =  ORIG_PATH_INFO
PATHINFO_PATH[] =  REDIRECT_PATH_INFO
PATHINFO_PATH[] =  REDIRECT_URL

# 数据配置

数据配置是指声明于应用描述文件(app.json)的配置项目,所有应用数据配置项目均保存于core_config表中,可在管理后台进行更新设置。
每一个项目为一个表单组件,更多表单属性请查看 form-create (opens new window)

一个完整的配置项的定义:

{
    "app": "",               // 应用标识(默认缺省,安装时自动识别)
    "app_title": "",         // 应用名称(默认缺省,安装时自动识别)
    "group": "站点配置",      // 配置分组(可选)
    "title": "站点名称",      // 配置名称
    "type": "input",         // 输入类型
    "field": "title",        // 字段名称(确保同一应用内唯一)
    "value": "StartCMS",     // 字段值(可选)
    "options": [],           // 配置选项(可选)
    "validate": [],          // 验证规则(可选)
    "props": {},             // 配置属性(可选)
    "default": "",           // 默认值(可选)
    "remark": "",            // 备注(可选)
    "locking": 0,            // 是否锁定(禁止编辑更新)
    "protected": 0           // 是否保护(前端无法获取)
}

# 自定义配置文件

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

注意

除了一级配置外,配置参数名严格区分大小写,建议是使用小写定义配置参数的规范。

# 配置获取和更新

数据配置
数据配置的获取和更新都可通过助手函数conf(app_name.field, value)完成

// 获取应用所有配置(应用名后面的'.'不可缺省)
conf('app.');
// 获取应用单个配置
conf('app.title');
// 更新应用单个配置
conf('app.title', 'new_title');

文件配置

  1. 使用助手函数config()
// 获取文件所有配置(每个配置文件都是独立的一级配置)
config('app');
config('route');
// 获取单个配置
config('app.title')
config('route.domain');
// 获取数组配置(理论上支持无限级配置参数读取)
config('database.default.host');
  1. 使用Config类
    首先需要在你的类文件中引入,如 use think\facade\Config;
    然后就可以使用下面的方法读取某个配置参数的值:
// 获取文件所有配置(每个配置文件都是独立的一级配置)
Config::get('app');
Config::get('route');
// 获取单个配置
Config::get('app.title')
Config::get('route.domain');
// 获取数组配置(理论上支持无限级配置参数读取)
Config::get('database.default.host');
// 判断是否存在某个配置参数
Config::has('template');
Config::has('route.route_rule_merge');
// Config类不再支持动态设置某个配置参数,但可以支持批量设置更新配置参数。
Config::set(['name1' => 'value1', 'name2' => 'value2'], 'config');
上次更新: 2/1/2023, 6:46:28 PM