- 🏠 简介
- 🔌 api接口
-
🔧 插件开发
- 介绍
- 插件优势
- 新建插件
- 技术栈
- 插件开发规范
- 插件目录结构
- model 层开发
- service 层开发
- api 接口开发
- menu 菜单开发
-
event 事件钩子开发
- 开发指南
- 常用事件
- SiteInit 站点初始化事件
- AddSiteAfter 站点创建后事件
- MemberRegister 会员注册后事件
- MemberLogin 会员登录后事件
- PayCreate 支付创建事件
- PaySuccess 支付成功事件
- RefundSuccess 退款成功事件
- TransferSuccess 转账成功事件
- BottomNavigation 底部导航事件
- NoticeData 消息模板数据内容事件
- GetQrcodeOfChannel 创建二维码事件
- ExportDataType 导出数据类型事件
- ExportData 导出数据源事件
- GetPosterType 海报类型事件
- GetPosterData 海报数据事件
- ShowCustomer 应用管理加载事件
- GetWechatTransferTradeScene 微信支付转账场景事件
- ThemeColor 主题风格事件
- initWap 手机端初始化加载事件
- dict 数据字典开发
- layout 自定义布局开发
- job 消息队列和计划任务开发
- notice 消息发送开发
- printer 小票打印模板开发
- export 数据导出开发
- diy 自定义组件/页面装修开发
- diy 自定义表单组件开发
- poster 自定义海报开发
- icon 引入图标
- 支付方式开发
- upgrade 插件版本升级
- 打包插件
- 授权信息变更回调通知
- 官网上架
- 📝 二次开发须知
- 👨💻 二次开发指导
-
🎬 二次开发应用插件视频教程
- 二次开发安装视频教程
- 准备工作与创建插件
- 插件目录整体说明
- 插件admin目录
- 插件app目录说明(adminapi、api、验证器)
- 插件app目录(dict、job)
- 插件app目录说明(lang、listener)
- 插件app目录说明(model、service)
- 插件uniapp目录说明
- 插件开发之后台功能开发(代码生成器)
- 插件开发之uniapp功能开发(api)第一节
- 插件开发之uniapp功能开发(api)第二节
- 插件开发之uniapp功能开发(api)第三节
- 插件安装与打包原理
- 消息队列开发
- 计划任务开发
- DIY组件和自定义页面装修开发
- 支付接口开发
- 插件升级包打包流程以及云编译功能
命名规范
文件命名规范
-
后台服务层(admin):
功能模块名Service.php,例如UserService.php -
前台服务层(api):
功能模块名Service.php,例如UserService.php -
公共核心服务层(core):
Core功能模块名Service.php,例如CoreUserService.php
类命名规范
-
后台服务层(admin):
功能模块名Service,例如UserService -
前台服务层(api):
功能模块名Service,例如UserService -
公共核心服务层(core):
Core功能模块名Service,例如CoreUserService
开发编码规范
方法命名基本原则
-
采用小驼峰命名法
-
命名应简洁明了,避免过长
-
名称应准确表达方法的功能意图
文件与业务组织原则
-
建议一个文件只处理一个模型表的相关业务
-
对于复杂业务逻辑,可整合到一个文件中,但需遵循以下命名规范:
当多个同类型功能需要写在一个文件内时,可在基础命名前增加业务名称前缀进行区分,例如:
-
getBrandPageList(查询品牌分页列表)
-
getAttrList(查询属性列表)
-
addStat(添加统计)
-
editStat(编辑统计)
-
deleteBrand(删除品牌)
方法命名规范
查询分页:getPage
/**
* 获取分页列表
* @param array $where
* @return array
*/
public function getPage(array $where = [])
{
$field = 'brand_id,brand_namecreate_time';
$order = 'brand_id desc';
$search_model = $this->model->where([ [ 'site_id', '=', $this->site_id ] ])->withSearch([ "brand_name" ], $where)->field($field)->order($order);
$list = $this->pageQuery($search_model);
return $list;
}
查询列表:getList
/**
* 获取列表
* @param array $where
* @param string $field
* @return array
*/
public function getList(array $where = [], $field = 'brand_id,brand_name,create_time')
{
$order = 'create_time desc';
return $this->model->where([ [ 'site_id', '=', $this->site_id ] ])->withSearch([ "brand_name" ], $where)->field($field)->limit(10)->order($order)->select()->toArray();
}
查询信息:getInfo(单表数据)
/**
* 获取信息
* @param int $id
* @return array
*/
public function getInfo(int $id)
{
$field = 'brand_id,brand_name,create_time';
$info = $this->model->field($field)->where([ [ 'brand_id', '=', $id ], [ 'site_id', '=', $this->site_id ] ])->findOrEmpty()->toArray();
return $info;
}
查询详情:getDetail(关联表数据)
/**
* 获取详情
* @param int $id
* @return array
*/
public function getDetail(array $data)
{
// todo 编写业务代码
}
添加数据:add
/**
* 添加商品品牌
* @param array $data
* @return mixed
*/
public function add(array $data)
{
$data[ 'create_time' ] = time();
$data[ 'site_id' ] = $this->site_id;
$brandInfo = $this->model->where([ [ 'site_id', '=', $this->site_id ], [ 'brand_name', '=', $data[ 'brand_name' ] ] ])->findOrEmpty()->toArray();
if ($brandInfo) {
throw new AdminException('品牌已存在,请检查');
}
$res = $this->model->create($data);
return $res->brand_id;
}
编辑数据:edit
/**
* 商品品牌编辑
* @param int $id
* @param array $data
* @return bool
*/
public function edit(int $id, array $data)
{
$data[ 'update_time' ] = time();
$brandInfo = $this->model->where([ [ 'site_id', '=', $this->site_id ], [ 'brand_name', '=', $data[ 'brand_name' ] ] ])->findOrEmpty()->toArray();
if ($brandInfo && $brandInfo[ 'brand_id' ] != $id) {
throw new AdminException('品牌已存在,请检查');
}
$this->model->where([ [ 'brand_id', '=', $id ], [ 'site_id', '=', $this->site_id ] ])->update($data);
return true;
}
删除数据:del
/**
* 删除商品品牌
* @param int $id
* @return bool
*/
public function del(int $id)
{
$model = $this->model->where([ [ 'brand_id', '=', $id ], [ 'site_id', '=', $this->site_id ] ])->find();
$res = $model->delete();
return $res;
}
修改某个字段:modify+字段名称,例如:modifySort、modifyStatus
/**
* 修改排序
* @param $data
* @return Brand
*/
public function modifySort($data)
{
return $this->model->where([
[ 'brand_id', '=', $data[ 'brand_id' ] ],
[ 'site_id', '=', $this->site_id ]
])->update([ 'sort' => $data[ 'sort' ] ]);
}