## 开发规范
#### 开发者组件为独立模块,可自由遵守TP5.1规范开发
**注意事项**
>1.组件即模块,在进行组件开发时,需严格遵循ThinkPHP5.1的相关规范,模块目录**请直接填写组件ID**。
组件ID获取方式:进入开发者中心-开发控制台-组件管理-新建规格后-获取组件ID
![](https://box.kancloud.cn/97d2dd9fdcc2daa1ce9355c3191d93e7_1165x283.png)
备注:
**组件ID为系统自动产生,请直接复制使用即可。**
---
>2.组件后端入口地址请遵循 module/controller/method 形式 (**请尽量使用默认index控制器和index方法作为入口**)
```
// 组件模块地址示例
/hlhj/index/index
```
---
>3.在进行组件开发期间,不允许修改该组件以外的任意文件和代码(除框架根目录提供的uploads中该组件对应的资源目录)
---
>4.开发者完成组件开发后,只需将组件目录进行压缩(zip格式),压缩包名称与组件目录名称一致,压缩包结构如下:
```
组件id.zip
├─组件目录 以组件id命名的目录
│ ├─组件目录 以组件id命名的模块目录
│ ├─db
│ │ ├─2018110102.sql 该组件使用到的数据表sql文件
│ │ ├─2018101201.sql 该组件使用到的数据表sql文件
│ │ ├─………………
```
>**注意:** 对于sql文件,平台审核规则为不允许在sql文件中出现删除表,删除数据等行为,组件数据表前缀使用**数字标记版本号**(只能以数字形成),否则审核不通过,除非有特殊情况,请与平台运营人员联系
**特别说明**:对于组件的sql文件,需要以增量形式做版本,推荐使用日期+两位数字形式命名,例如 2018101201.sql,当我们做自动化集成时,我们会对sql文件按照命名做排序,从小到大依次执行;如果组件方不想用日期+两位数字作为命名规则,也可使用其它 **数字** 方式命名,例如 1.sql;2.sql 等,但是 需要注意的地方是,一旦组件选定一种sql文件命名方式之后,该组件需要一直保持该命名方式,原则就是 当组件sql不止一个文件时,对sql文件名称按照从小到大排序后,能符合组件sql版本更新的逻辑和顺序
---
>5.为避位路由冲突,开发者不能自定义路由
---
>6.由于天马框架根目录设置成最外层目录并且TP框架自带url()方法生成的url地址会自动加上public,这样url链接访问就会出错,因此应避免使用url()方法,应直接将链接写成"模块/控制器/方法"这种方式
---
* * * * *
## 组件目录结构
开发者进行组件开发时,请参照我们提供的模块目录结构进行开发
```
│ ├─组件目录(组件id) 开发者组件名称
│ │ ├─controller 控制器目录 必要
│ │ ├─model 模型目录 必要
│ │ ├─view 视图目录 必要
│ │ ├─config 组件配置目录目录 非必要
│ │ ├─ ... 其他
```
>在进行组件开发时,默认的组件目录需要需要包括 controller、model、view这三个目录,如果开发者使用前后端分离,则不需要view,直接将你的前端文件放在该组件目录下,并且将入口地址 以 application开头,.html 前端文件结尾。
>**例如** `application/hlhj01xwzx02qazxsw/web/index.html`
## config.ini配置文件结构
```
[config]
PATH=application/hlhj01xwzx02qazxsw/web/index.html
```
>****
## database配置详解:
```
// 数据库类型
'type' => 'mysql', //默认统一使用mysql,不用更改
// 服务器地址
'hostname' => Env::get(SERVER_ENV.'HOSTNAME'),
// 数据库名
'database' => Env::get(SERVER_ENV.'DATABASE_NAME'),
// 用户名
'username' => Env::get(SERVER_ENV.'DATABASE_USERNAME'),
// 密码
'password' => Env::get(SERVER_ENV.'DATABASE_PASSWORD'),
// 数据库表前缀
'prefix' => '', //由于各组件公用一个库,以组件名称作为数据库表前缀区分,所以各组件务必不要设置prefix
```
>目前我们并没有采用模块分库的形式,而是共用一个数据库,开发者只需要按如上形式配置数据库,无需改动。SERVER_ENV 是我们框架提供的一个常量,无需更改。如无特殊配置需要,模块无需单独配置database.php文件,直接使用框架提供的database.php 文件。
---
**组件开发人员在定义model时可使用以下两种方式:**
>1,在model里面指定 $table ,以ORM的形式处理model (**推荐**)
---
>2,或者直接使用Db::table('tablename')的方式**
## 资源上传
>框架鼓励开发者使用第三方存储,除此之外,请将所有图片等资源文件的路径务必使用框架根目录提供的uploads/模块名/..,参考如下:
资源文件上传,框架现做了统一封装,通过common中的方法提供给了组件进行调用,从而组件不需要关心上传到哪里,怎么配置oss,七牛云或者本地上传等,详见
```
├─appconf 客户端需要的配置文件
├─application 应用目录
├─config 应用配置目录
├─uploads
│ ├─moduleName 组件名称(同名application中的moduleName)
│ │ ├─resources 该组件下使用到的各类图片等资源文件
```
## 我们的验收测试环境
**操作系统:**`CentOS Linux 7.4`
**服务器:**`Apache 2.4`
**数据库:**`MySQL 5.5`
**PHP版本:**`php7.1`
- 摘要
- 安装
- 目录结构
- 开发规范
- 接口文档
- 会员登录
- 获取会员信息
- 发送短信验证码
- 修改会员信息
- 通过手机号修改密码
- 通过密码修改密码
- 修改手机号码
- 绑定手机号码
- 添加收藏
- 取消收藏
- 查询单个文章收藏
- 批量检查文章收藏
- 清空收藏
- 添加浏览历史记录
- 删除浏览历史记录
- 清空浏览历史记录
- 获取历史记录列表
- 第三方登录
- 修改会员积分
- 获取会员当前积分
- 获取会员积分变动情况列表
- 百度富文本上传接口
- 会员注册
- 获取app为标识
- 单个文件上传
- 发送短信验证码V2
- 生成图形校验码
- 生成文本校验码
- 消息中心
- api请求方式
- 新增消息数据
- 消息数据查询
- 待处理消息数量查询
- 查询最新一条消息
- 消息状态修改/删除
- 未读消息弹框处理
- 方法直接请求
- 新增消息数据
- 消息数据查询
- 待处理消息数量查询
- 查询最新一条消息
- 消息状态修改/删除
- 未读消息弹框处理
- 公共类及方法
- 获取阿里云短信配置
- 极光消息推送的方法
- 获取管理员列表的方法
- 会员相关方法
- app支付宝支付及app微信支付
- 上传资源文件方法及获取链接方法
- 获取app下载地址