方法名:小驼峰命名,禁止下横线、禁止重复业务核心词
以表为基准建立Logic层

一、Code标例

  1. <?php
  2. namespace App\Module\Cms\Logic\Info;
  3. use Swork\Bean\BeanCollector;
  4. use ......
  5. /**
  6. * 资讯内容逻辑处理
  7. * Class InfoLogic
  8. * @package App\Module\Cms\Logic
  9. */
  10. class InfoLogic extends BeanCollector
  11. {
  12. /**
  13. * Inject()
  14. * var CatalogLogic
  15. */
  16. private $catalogLogic;
  17. /**
  18. * 获取资讯内容翻页数据
  19. * @param array $query 数据过滤查询字段
  20. * @param int $idx 翻页码
  21. * @param int $size 每页行数
  22. * @return array
  23. * @throws
  24. */
  25. public function getPager(array $query, int $idx, int $size)
  26. {
  27. return $list;
  28. }
  29. /**
  30. * 获取资讯内容列表
  31. * @param int $cid 分类ID
  32. * @return mixed
  33. * @throws
  34. */
  35. public function getList(int $cid)
  36. {
  37. return $list;
  38. }
  39. /**
  40. * 获取资讯详细内容(注:通常用于展示用,如果展示和修改可以共用,则使用此方法)
  41. * @param int $fid 资讯内容ID
  42. * @return mixed
  43. * @throws
  44. */
  45. public function getInfo(int $fid)
  46. {
  47. return $info;
  48. }
  49. /**
  50. * 获取资讯详细内容(注:通常用于表单修改,绑定默认数据)
  51. * @param int $fid 资讯内容ID
  52. * @return mixed
  53. * @throws
  54. */
  55. public function getDetail(int $fid)
  56. {
  57. return $info;
  58. }
  59. /**
  60. * 保存资讯数据
  61. * @param int $fid 资讯内容ID (新增是为空,修改时不为空)
  62. * @param int $cid 级别类型
  63. * @param string $title 资讯标题
  64. * @param string $author 作者
  65. * @param string $content 资讯详细内容
  66. * @throws
  67. */
  68. public function save(int $fid, int $cid, string $title, string $author, string $content)
  69. {
  70. //不返回任何内容
  71. }
  72. /**
  73. * 创建资讯内容数据
  74. * @param int $cid 级别类型
  75. * @param string $title 资讯标题
  76. * @param string $author 作者
  77. * @param string $content 资讯详细内容
  78. * @throws
  79. */
  80. public function create(int $cid, string $title, string $author, string $content)
  81. {
  82. //不返回任何内容
  83. }
  84. /**
  85. * 修改资讯内容数据
  86. * @param int $fid 资讯内容ID
  87. * @param int $cid 级别类型
  88. * @param string $title 资讯标题
  89. * @param string $author 作者
  90. * @param string $content 资讯详细内容
  91. * @throws
  92. */
  93. public function modify(int $fid, int $cid, string $title, string $author, string $content)
  94. {
  95. //不返回任何内容
  96. }
  97. /**
  98. * 删除资讯内容(有引用了不能删除)
  99. * @param int $fid 资讯内容ID
  100. * @throws
  101. */
  102. public function delete(int $fid)
  103. {
  104. //不返回任何内容
  105. }
  106. }

二、解析说明

  1. 每个小业务对应一个Logic文件,类名为:xxxLogic (红色为具体业务或表的关键词,蓝色固定为Logic)。
  2. 统一继承 BeanCollector,用于实现注解。
  3. 业务核心名称与通常与对应表的核心名一致,如 cms_info —> InfoLogic
  4. 类名使用大驼峰,方法名使用小驼峰,类内变量使用小驼峰(不区分全局还是私有),禁止使用下线。 | 项目 | 方式 | | —- | —- | | Class - 类名 | 大驼峰 | | Method - 方法名 | 小驼峰 | | 类内变量 | 小驼峰 |

逻辑方法的命令是要说明 做什么,一个动作词和一个内容词(可选内容词)。

  1. <?php
  2. /**
  3. * 做什么的描述说明
  4. * @param ....
  5. * @throws
  6. */
  7. public function 动作词内容词(...)
  8. {
  9. return $list;
  10. }
  11. /**
  12. * 做什么的描述说明(只有动作词,如delete、add、modify)
  13. * @param ....
  14. * @throws
  15. */
  16. public function 动作词(...)
  17. {
  18. return $list;
  19. }
  20. }

三、标准方法名

方法名 参数 说明
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 等

四、错误方法命名

  1. getInfoPager()
  2. getInfoList()
  3. getInfos()
  4. updateInfo() 或InfoUpdate()
  5. deleteInfo 或 InfolDelete
  6. delete_Infol 或 Info_delete
  7. detail

    总结:在Logic大类里面已经声明是 Info 这个业务核心名,在此类内的方法,不能再出现此核心名。