签入版本

This commit is contained in:
小蚂蚁云
2026-10-25 17:24:27 +08:00
parent 48911cc08f
commit fdbeae092a
1010 changed files with 30682 additions and 95274 deletions
+29 -68
View File
@@ -1,89 +1,50 @@
# 5.13 系统参数管理
:::tip 概述
ParamService 管理系统级参数,如默认密码、系统名称等,采用两级缓存(请求级 + 持久缓存),大幅减少数据库查询。
参数是扁平单表的键值存储(gin_param),适合存放彼此独立、无需分组的系统参数。读取按 code 定位,变更走管理界面并留操作日志。
:::
## 缓存架构
## 表结构
```text
请求级缓存(static::$cache) ← 同一请求内不重复查库
│ 未命中
▼
持久缓存(cache(),1小时) ← 跨请求复用
│ 未命中
▼
数据库查询(param 表) ← 查询后写入两级缓存
gin_param
├── code 参数键(全局唯一,小写下划线命名)
├── value 参数值
├── name 参数名称(管理界面展示)
├── remark 备注(取值说明、单位、默认值)
└── 公共审计列
```
## 核心方法
## 典型参数
```php
// app/service/ParamService.php
| code 形态 | 用途 |
|---|---|
| 协议/版本类 | 用户协议版本号、前端最低版本 |
| 开关类 | 独立的小功能开关 |
| 联系方式 | 客服电话、邮箱 |
| 提示文案 | 注册须知、免责声明文本 |
// 获取参数值(通用)
$value = ParamService::get('DEFAULT_PASSWORD', '123456');
## 与配置管理的选型
// 获取字符串参数
$value = ParamService::getString('SITE_NAME', 'RXThinkCMF');
- **成组配置**(站点配置一组、业务开关一组)→ 配置管理(gin_config 分组树)
- **独立参数**(一个 code 一个值)→ 参数管理(gin_param 扁平表)
// 获取整数参数
$value = ParamService::getInt('MAX_LOGIN_ATTEMPTS', 5);
两者都是数据库键值,禁止把运维级配置(端口/密钥/DSN)放进来。
// 获取布尔参数
$value = ParamService::getBool('ENABLE_SMS', false);
## 业务侧使用
// 获取默认密码(从系统参数读取,默认 '123456')
$password = ParamService::getDefaultPassword();
标准五方法经 ModuleSpec 声明;按 code 读取走列表/详情接口。参数变更即时生效(无缓存失效问题——读侧直查),但高频读取场景建议在 service 层加进程内缓存并主动失效。
// 清除指定参数缓存
ParamService::clearCache('DEFAULT_PASSWORD');
## 管理界面
// 清除所有参数缓存
ParamService::clearAllCache();
```
参数管理页见 [6.13 参数管理](/zh/modules/param.html)。
## 方法签名
## 命名规约
| 方法 | 说明 | 返回值 |
|------|------|--------|
| `get($code, $default)` | 获取参数值 | mixed |
| `getString($code, $default)` | 获取字符串 | string |
| `getInt($code, $default)` | 获取整数 | int |
| `getBool($code, $default)` | 获取布尔 | bool |
| `getDefaultPassword()` | 获取默认密码明文 | string |
| `clearCache($code)` | 清除指定缓存 | void |
| `clearAllCache()` | 清除所有缓存 | void |
- code 全局唯一,小写下划线,尽量带模块前缀
- value 一律字符串存储(数字/布尔由消费方转换)
- 修改参数属于运营操作,权限节点按"参数管理"粒度控制
## 查询条件
## 下一步
仅查询满足以下条件的参数:
- `status = 1`(启用)
- `is_delete = 0`(未删除)
## API 接口
| 方法 | 路径 | 权限码 | 说明 |
|------|------|--------|------|
| GET | `/api/param/page` | sys:param:page | 分页列表 |
| GET | `/api/param/list` | sys:param:list | 全量列表 |
| GET | `/api/param/detail/:id` | sys:param:detail | 详情 |
| POST | `/api/param/add` | sys:param:add | 新增 |
| PUT | `/api/param/update` | sys:param:update | 修改 |
| DELETE | `/api/param/delete/:id` | sys:param:delete | 删除 |
| DELETE | `/api/param/batchDelete` | sys:param:batchDelete | 批量删除 |
## 与配置管理的区别
| 维度 | 参数管理(Param) | 配置管理(Config) |
|------|------------------|-------------------|
| 数据结构 | 独立的键值对 | 分组 + 配置项 |
| 适用场景 | 系统级参数(默认密码、限流阈值) | 网站配置(名称、Logo、SMTP) |
| 读取方式 | ParamService::get('code') | ConfigItemLogic 查询 |
| 缓存 | 两级缓存 | 无特殊缓存 |
## 常用系统参数
| 编码 | 说明 | 默认值 |
|------|------|--------|
| `DEFAULT_PASSWORD` | 默认密码 | 123456 |
→ [5.14 操作日志](/zh/core/operation-log.html)