- 🏠 简介
- 📥 源码下载
- 🚀 安装指南
- 🔧 niucloud (服务端)
- 🖥️ admin (后台管理端)
- 📱 uni-app(手机端前端)
- 🌐 web端(PC前端)
- ⚙️ 代码生成器
- ⚙️ 配置手册
- 📚 使用手册
- 🔄 版本更新
-
❓ 常见问题
- 服务器问题
- 安装问题
- 使用问题
- 版本问题
-
其他问题
- 怎么添加菜单,添加了菜单不出现怎么回事
- 站点site端(租户端、商家端)和saas管理端(平台端)究竟啥意思,有啥区别
- 框架中是有订单表order,假如开发一个商城插件,请问商城的订单数据是不是重新搞一个订单表shop_order
- 有些支付平台是绑定回调唯一网址或目录,如果有几个开发者开发插件都有支付那这块怎么解决?
- 站点过期,可以登录,这样对吗?
- 计划任务怎么启动啊
- Git多分支开发,切换分支
- 安装应用出现is_dir()报错处理方案
- 绑定授权时出现“请求来源产品与授权产品不一致”解决方案
- “未找到admin源码所在目录”的解决方案
- 页面装修本地开发环境配置
- 接口请求错误处理方案
- 未获取到授权信息问题处理方案
- 腾讯地图配置
- 请求超时问题处理方案
- 下载应用时提示找不到zip解决方案
- 怎么关闭开发调试模式
- 获取数据失败问题处理方案
- 框架安装后,访问域名无法进入admin端(多数发生在本地)
- 底部导航失效问题
- 开放平台小程序审核通过发布失败问题
- 先升级插件后升级框架,导致云编译报debounce的错误
- 微信公众号自动回复不通
- 如何修改访问域名默认跳转端口
- 插件与框架的版本兼容问题处理方案
- 升级提示mkdir()处理方案
- 云编译时node.js内存不足导致内存溢出处理方案
- 报错Allowed memory size of ** bytes exhausted (tried to allocate ** bytes)处理方法
- Mysql修改sql_mode模式
- 框架1.0.2之前升级最新版错误Undefined array key "content"
- 安装插件提示不适配框架版本的处理
数据字典
数据字典概述
数据字典是用于定义和管理枚举类型数据结构的核心机制。在系统设计中,这些枚举类型的常量(如支付方式)通常很少发生变化,将其定义为数据字典而非存储在数据库中,可使代码结构更清晰、易读,并支持多语言的灵活切换(包括运行时实时切换)。数据字典包括系统数据字典,第三方开发者定义的数据字典。
数据字典目录结构
数据字典在项目中主要位于 app/dict 目录下,整体采用模块化的组织方式:
niucloud/
app/dict/
├─addon #插件相关字典
│ AddonDict.php #定义插件相关状态和类型常量
├─applet #小程序相关字典
│ AppletlDict.php #小程序配置和状态常量
├─cash_out #提现相关字典
│ CashOutTypeDict.php #提现类型和状态定义
├─channel #渠道相关字典
│ AppDict.php #应用平台类型常量
│ CertDict.php #证书类型常量
│ ReplyDict.php #回复消息类型常量
│ WechatDict.php #微信相关类型和事件常量
├─common #通用字典
│ ChannelDict.php #访问渠道类型(PC、H5等)
│ CommonActiveDict.php #营销活动类型常量
│ CommonDict.php #基础数据类型(如性别)
├─diy #自定义页面相关字典
│ ComponentDict.php #DIY组件类型
│ LinkDict.php #链接类型
│ PagesDict.php #页面类型
│ TemplateDict.php #模板类型
├─diy_form #自定义表单相关字典
│ ComponentDict.php #表单组件类型
│ ConfigDict.php #表单配置
│ TemplateDict.php #表单模板
│ TypeDict.php #表单类型
├─member #会员相关字典
│ account_change_type.php #账户变动类型配置
│ benefits.php #会员权益配置
│ gift.php #会员礼品配置
│ growth_rule.php #会员成长规则
│ MemberAccountChangeTypeDict.php #会员账户变动类型
│ MemberAccountTypeDict.php #会员账户类型
│ MemberCashOutDict.php #会员提现状态
│ MemberDict.php #会员状态
│ MemberLevelDict.php #会员等级样式配置
│ MemberLoginTypeDict.php #会员登录方式
│ MemberRegisterChannelDict.php #会员注册渠道
│ MemberRegisterTypeDict.php #会员注册类型
│ MemberSignDict.php #会员签到状态
│ MemberSignTypeDict.php #会员签到类型
│ point_rule.php #积分规则
├─menu #菜单相关字典
│ admin.php #后台菜单配置
│ site.php #站点菜单配置
├─notice #通知相关字典
│ notice.php #通知配置
│ NoticeDict.php #通知基础定义
│ NoticeTypeDict.php #通知类型
│ sms.php #短信通知配置
│ weapp.php #小程序通知配置
│ wechat.php #微微信通知配置
├─pay #支付相关字典
│ OnlinePayDict.php #在线支付定义
│ OnlineRefundDict.php #在线退款定义
│ PayChannelDict.php #支付渠道字典
│ PayDict.php #支付类型
│ PaySceneDict.php #支付场景
│ RefundDict.php #退款基础定义
│ TransferDict.php #转账定义
├─poster #海报相关字典
│ ComponentDict.php #海报组件类型
│ template.php #海报模板配置
├─scan #扫码相关字典
│ ScanDict.php #扫码功能定义
├─schedule #计划任务相关字典
│ ScheduleDict.php #计划任务定义
│ ScheduleLogDict.php #计划任务日志定义
│ schedule.php #计划任务配置
├─site #站点相关字典
│ SiteDict.php #站点基础定义
│ SiteAccountLogDict.php #站点账户日志定义
├─sys #系统相关字典
│ AgreementDict.php #协议相关枚举类
│ AppTypeDict.php #应用类型定义
│ BackupDict.php #备份类型定义
│ CloudDict.php #云服务定义
│ ConfigKeyDict.php #配置键定义
│ DateDict.php #日期相关定义
│ ExportDict.php #导出类型定义
│ FileDict.php #文件类型定义
│ MenuDict.php #菜单基础定义
│ MenuTypeDict.php #菜单类型定义
│ MethodDict.php #传输方式
│ PosterDict.php #海报基础定义
│ PrinterDict.php #打印机类型定义
│ RoleStatusDict.php #角色状态定义
│ SmsDict.php #短信基础定义
│ StorageDict.php #存储类型定义
│ UpgradeDict.php #升级类型定义
│ UserDict.php #用户基础定义
│ WechatMediaDict.php #微信媒体定义
│ WxOplatformDict.php #微信开放平台定义
└─verify #验证相关字典
VerifyDict.php #验证类型定义
除了核心应用的 app/dict 目录外,第三方开发者开发的插件也遵循相同的结构定义数据字典,通常位于各插件目录的 app/dict 下,如充值插件的数据字典:
niucloud/addon/recharge/
app/dict/
├── RechargeOrderDict.php #充值订单数据字典
├── RechargePackageDict.php #充值套餐数据字典
├── diy #自定义数据字典
├── member #会员相关数据字典
├── menu #菜单数据字典
├── notice #通知数据字典
├── recharge #充值核心数据字典
└── schedule #调度数据字典
数据字典设计特点
1. 静态方法调用机制
数据字典中的函数均定义为静态(static)方法,开发者可直接通过类方法调用获取所需数据,无需实例化:
// 示例:获取会员账户积分类型
$data['account_type'] = MemberAccountTypeDict::POINT;
2. 多语言支持
数据字典设计支持多语言切换,通过与系统语言包配合,可在运行时实现枚举值显示文本的语言切换。