### 命名規則
> 1. 控制器文件名稱以 首字母大寫格式創建文件 `如果存在多個單詞也一樣`,按照文件整個名稱為單位。如 [ **Admin.php** 、**Adminuser.php** 、**Userorder.php ** 、 **User.php** ]
> 2. css/js 以后端控制器文件名稱命名`全小寫`,具體到方法如 [ 控制器名稱.方法名稱.css | js ] [ **admin.css** 、**admin.index.css**、**userorder.js**、**user.js** ]
### 插件目錄結構
> 插件唯一標識符示例名稱 `test_plugins`
#### 控制位置
```
application/plugins/test_plugins/
admin 后臺管理控制器
Admin.php 插件管理入口控制器(必須)
index 前端控制器
Index.php 前端插件入口文件(非必須)
api API控制器
form 動態表格目錄(可以不分組、可以直接存放文件)
admin 后端動態表格
index 前端動態表格
service 服務層(可選)
Hook.php 鉤子文件
Event.php 事件回調文件
config.json 配置文件
install.sql 安裝 sql 語句
uninstall.sql 卸載 sql 語句
update.sql 插件版本更新 sql 語句(更新插件的時候執行)
```
如果插件處理的業務較多,建議在` application/plugins/test_plugins/` 下增加 `service` 服務層處理核心業務,控制層僅處理邏輯。
##### 回調事件 Event.php、定義以下方法即可,當插件發生以下情況會回調(僅2.0+版本支持)
> Upload 上傳
Install 安裝
Uninstall 卸載
Download 下載
Delete 刪除
Upgrade 更新
#### 視圖位置
```
application/plugins/view/test_plugins/
admin 后臺管理控制器對應的視圖
admin 控制器名稱 小寫
index.html 控制器中的 index 方法
saveinfo.html 控制器中的 saveinfo 方法
index 前端控制器對應的視圖
index 控制器名稱 小寫
index.html 控制器中的 index 方法
```
#### css/js 位置
> 1. 按照這個規則命名、系統會自動引入相應的 css/js 文件
2. 如定義了方法 css/js 則不再引入對應控制器的 css/js
```
public/static/plugins/css/test_plugins/
admin 后臺管理 css 文件存放目錄
common.css 公共的 css 文件、加載插件都會自動加載這個文件,在控制器 css 前面、兩者不沖突
admin.css 后臺 Admin.php 控制器對應的 css 文件
admin.index.css 后臺 Admin.php 控制器 中 Index 方法對應的 css 文件
admin.saveinfo.css 后臺 Admin.php 控制器 中 SaveInfo 方法對應的 css 文件
index 后臺管理 css 文件存放目錄
common.css 公共的 css 文件、加載插件都會自動加載這個文件,在控制器 css 前面、兩者不沖突
index.css 后臺 Admin.php 控制器對應的 css 文件
index.index.css 后臺 Admin.php 控制器 中 Index 方法對應的 css 文件
index.saveinfo.css 后臺 Admin.php 控制器 中 SaveInfo 方法對應的 css 文件
```
```
public/static/plugins/js/test_plugins/
admin 后臺管理 js 文件存放目錄
common.js 公共的 js 文件、加載插件都會自動加載這個文件,在控制器 js 前面、兩者不沖突
admin.js 后臺 Admin.php 控制器對應的 js 文件
admin.index.js 后臺 Admin.php 控制器 中 Index 方法對應的 js 文件
admin.saveinfo.js 后臺 Admin.php 控制器 中 SaveInfo 方法對應的 js 文件
index 后臺管理 js 文件存放目錄
common.js 公共的 js 文件、加載插件都會自動加載這個文件,在控制器 js 前面、兩者不沖突
index.js 后臺 Admin.php 控制器對應的 js 文件
index.index.js 后臺 Admin.php 控制器 中 Index 方法對應的 js 文件
index.saveinfo.js 后臺 Admin.php 控制器 中 SaveInfo 方法對應的 js 文件
```
#### 圖片位置
> 圖片層無強制目錄區分、如果圖片較多的插件建議前后端/控制器區分、方便管理
```
public/static/plugins/images/test_plugins/
```
#### 附件位置
> 1. 附件為系統自動創建,位于 upload 目錄下以 plugins_加當前插件唯一標識符命名
2. 如編輯器中上傳的文件,或者使用公共的附件上傳組件上傳的文件都存儲在這里
```
public/static/upload/images/plugins_test_plugins/ 圖片附件
public/static/upload/file/plugins_test_plugins/ 文件附件
public/static/upload/video/plugins_test_plugins/ 視頻附件
```