## 呆錯配置組件
* 呆錯配置組件主要作用是統一將使用者的動態配置保存在數據庫中以及開發者預置一些插件的基礎配置。
* 開發流程 (添加后臺配置菜單 > 定義插件配置表單字段頁面 > 調用配置類庫相關接口 )。
## 框架配置
* 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()](http://www.hmoore.net/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 獲取多個動態配置列表