方法名:小驼峰命名,禁止下横线、禁止重复业务核心词
以表为基准建立Logic层
一、Code标例
<?php
namespace App\Module\Cms\Logic\Info;
use Swork\Bean\BeanCollector;
use ......
/**
* 资讯内容逻辑处理
* Class InfoLogic
* @package App\Module\Cms\Logic
*/
class InfoLogic extends BeanCollector
{
/**
* Inject()
* var CatalogLogic
*/
private $catalogLogic;
/**
* 获取资讯内容翻页数据
* @param array $query 数据过滤查询字段
* @param int $idx 翻页码
* @param int $size 每页行数
* @return array
* @throws
*/
public function getPager(array $query, int $idx, int $size)
{
return $list;
}
/**
* 获取资讯内容列表
* @param int $cid 分类ID
* @return mixed
* @throws
*/
public function getList(int $cid)
{
return $list;
}
/**
* 获取资讯详细内容(注:通常用于展示用,如果展示和修改可以共用,则使用此方法)
* @param int $fid 资讯内容ID
* @return mixed
* @throws
*/
public function getInfo(int $fid)
{
return $info;
}
/**
* 获取资讯详细内容(注:通常用于表单修改,绑定默认数据)
* @param int $fid 资讯内容ID
* @return mixed
* @throws
*/
public function getDetail(int $fid)
{
return $info;
}
/**
* 保存资讯数据
* @param int $fid 资讯内容ID (新增是为空,修改时不为空)
* @param int $cid 级别类型
* @param string $title 资讯标题
* @param string $author 作者
* @param string $content 资讯详细内容
* @throws
*/
public function save(int $fid, int $cid, string $title, string $author, string $content)
{
//不返回任何内容
}
/**
* 创建资讯内容数据
* @param int $cid 级别类型
* @param string $title 资讯标题
* @param string $author 作者
* @param string $content 资讯详细内容
* @throws
*/
public function create(int $cid, string $title, string $author, string $content)
{
//不返回任何内容
}
/**
* 修改资讯内容数据
* @param int $fid 资讯内容ID
* @param int $cid 级别类型
* @param string $title 资讯标题
* @param string $author 作者
* @param string $content 资讯详细内容
* @throws
*/
public function modify(int $fid, int $cid, string $title, string $author, string $content)
{
//不返回任何内容
}
/**
* 删除资讯内容(有引用了不能删除)
* @param int $fid 资讯内容ID
* @throws
*/
public function delete(int $fid)
{
//不返回任何内容
}
}
二、解析说明
- 每个小业务对应一个Logic文件,类名为:xxxLogic (红色为具体业务或表的关键词,蓝色固定为Logic)。
- 统一继承 BeanCollector,用于实现注解。
- 业务核心名称与通常与对应表的核心名一致,如 cms_info —> InfoLogic
- 类名使用大驼峰,方法名使用小驼峰,类内变量使用小驼峰(不区分全局还是私有),禁止使用下线。 | 项目 | 方式 | | —- | —- | | Class - 类名 | 大驼峰 | | Method - 方法名 | 小驼峰 | | 类内变量 | 小驼峰 |
逻辑方法的命令是要说明 做什么,一个动作词和一个内容词(可选内容词)。
<?php
/**
* 做什么的描述说明
* @param ....
* @throws
*/
public function 动作词内容词(...)
{
return $list;
}
/**
* 做什么的描述说明(只有动作词,如delete、add、modify)
* @param ....
* @throws
*/
public function 动作词(...)
{
return $list;
}
}
三、标准方法名
方法名 | 参数 | 说明 |
---|---|---|
getPager | (array $query, int $idx, int $size) | 获取翻页数据,返回List和Pager数据 |
getList | (根据需求而定) | 获取一页数据 |
getInfo | 获取详情数据,通常用于展示用,如果展示和修改可以共用,则使用此方法 | |
getDetail | 通常用于表单修改,绑定默认数据 | |
getXXX | 获取XXX数据(具体某个处理后的数据) | |
save | 核心字段,单独传参; |
保存数据,对应前端新增和修改时一并使用 |
create | 纯创建数据的保存操作 | |
modify | 纯修改原有数据的保存操作 |
注:1)原则上 save, create, modify 除需要把业务数据外,其它情况不需要返回,如 true, false, success 等等;
2)大部分情况是使用 save 代替 create 和 modify 操作,在save方法内通过主键区分是否更新数据;
3)所有参数都要求声明类型,如 int, array, string 等
四、错误方法命名
- getInfoPager()
- getInfoList()
- getInfos()
- updateInfo() 或InfoUpdate()
- deleteInfo 或 InfolDelete
- delete_Infol 或 Info_delete
detail
总结:在Logic大类里面已经声明是 Info 这个业务核心名,在此类内的方法,不能再出现此核心名。