## 呆错配置组件
* 呆错配置组件主要作用是统一将使用者的动态配置保存在数据库中以及开发者预置一些插件的基础配置。
* 开发流程 (添加后台配置菜单 > 定义插件配置表单字段页面 > 调用配置类库相关接口 )。
## 框架配置
* apps/config.php 系统核心配置(一般不需要修改)
* apps/database.php 数据库配置(安装mysql版本时会修改此文件)
* apps/route.php 系统路由配置(一般不需要修改,交由系统的路由功能动态完成)
* apps/tags.php 系统行为/钩子扩展配置(一般不需要修改,开发者在开发插件时在插件目录单独定义)
## 插件配置
* 每个插件应用模块会自动加载自己的配置文件(位于apps/当前应用名/config.php),主要用来定义插件应用模块的基础开发需要使用的变量或者扩展修改框架系统本身的配置。
* 为保证插件之间共享依赖关系,1.3版本后已安装应用的插件配置会全部加载到呆错框架系统中,加载顺序为后安装的应用覆盖先安装的应用。
## 动态配置
DaiCuo框架的动态配置统一保存在数据库'dc_op'表里中,可通过呆错的公共配置模型类进行增、删、改、查,[点此查看](https://www.daicuo.org/help/59)动态配置相关开发实例。
是插件应用模块开发过程中为完成业务逻辑给应用使用者需要可视化管理的配置系统(包括写入、读取、删除),可根据需要由表单对数据库进行管理,系统会自动缓存与加载。
## 加载顺序
* 框架配置 > 应用配置 > 动态配置(后面的配置会覆盖之前的同名配置,配置的优先顺序从右到左)
## 读取与写入
* 动态配置的写入与读取需要通过配置组件来完成;框架初始化时会通过配置组件的config方法合并动态配置至框架的初始化配置中。
* 如需读取与修改配置,可使用TP的助手函数[config()](https://www.kancloud.cn/manual/thinkphp5/118022),二级结构以上的路径请使用 DcConfig 函数替代 config 函数,示例:
~~~
config('commmon.name');//读取common模块name配置的值
config('home.index');//读取home模块index配置的值
config('home.index','daicuo');//修改home模块index配置的值
DcConfig('common.custom_fields.term_meta','test');//修改一个配置
DcConfig('common.custom_fields.term_meta');//读取一个配置
~~~
## 常用方法
* model('common/Config','loglic')->write($post=[])
* model('common/Config','loglic')->delete($args=[])
* model('common/Config','loglic')->get($args=[])
* model('common/Config','loglic')->select($args=[])
* model('common/Config','loglic')->writeAll($args=[])
* model('common/Config','loglic')->deleteIds($args=[])
* model('common/Config','loglic')->status($ids=[],$value='')
* model('common/Config','loglic')->getId($ids=[],$value='')
* model('common/Config','loglic')->metaList($module='admin', $controll='category', $action='index')
* model('common/Config','loglic')->install($args=[])
* model('common/Config','loglic')->unInstall($args=[])
## 助手函数
* config ThinkPhp的配置助手函数
* DcLoadConfig 加载配置文件
* DcConfig 获取系统配置.支持多级层次
* DcConfigMerge 合并配置信息
* DcConfigWrite 批量更新与新增动态配置
* DcConfigSave 添加一条动态配置至数据库
* DcConfigDelete 删除一条动态配置
* DcConfigFind 获取一个动态配置
* DcConfigSelect 获取多个动态配置列表