### 命名规则
> 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/ 视频附件
```