DDD开发规范 标准目录结构: modules/authority │ Module.php │ ├─aggregates │ │ BaseAuthorityPermissionAggregate.php │ │ BaseAuthorityPermissionGroupAggregate.php │ │ BaseAuthorityPermissionGroupItemAggregate.php │ │ BaseAuthorityPermissionGroupUserAggregate.php │ │ │ └─querys │ BaseAuthorityPermissionAggregateQuery.php │ BaseAuthorityPermissionGroupAggregateQuery.php │ BaseAuthorityPermissionGroupItemAggregateQuery.php │ BaseAuthorityPermissionGroupUserAggregateQuery.php │ ├─components │ ModuleConfig.php │ ModuleManager.php │ ├─config │ main.php │ ├─entitys │ │ BaseAuthorityPermissionEntity.php │ │ BaseAuthorityPermissionGroupEntity.php │ │ BaseAuthorityPermissionGroupItemEntity.php │ │ BaseAuthorityPermissionGroupUserEntity.php │ │ │ └─querys │ BaseAuthorityPermissionEntityQuery.php │ BaseAuthorityPermissionGroupEntityQuery.php │ BaseAuthorityPermissionGroupItemEntityQuery.php │ BaseAuthorityPermissionGroupUserEntityQuery.php │ ├─models │ │ BaseAuthorityPermissionGroupItemModel.php │ │ BaseAuthorityPermissionGroupModel.php │ │ BaseAuthorityPermissionGroupUserModel.php │ │ BaseAuthorityPermissionModel.php │ │ │ └─querys │ BaseAuthorityPermissionGroupItemModelQuery.php │ BaseAuthorityPermissionGroupModelQuery.php │ BaseAuthorityPermissionGroupUserModelQuery.php │ BaseAuthorityPermissionModelQuery.php │ ├─modules │ └─mall │ │ Module.php │ │ │ ├─aggregates │ │ │ AuthorityPermissionAggregate.php │ │ │ AuthorityPermissionGroupAggregate.php │ │ │ AuthorityPermissionGroupItemAggregate.php │ │ │ AuthorityPermissionGroupUserAggregate.php │ │ │ │ │ └─querys │ │ AuthorityPermissionAggregateQuery.php │ │ AuthorityPermissionGroupAggregateQuery.php │ │ AuthorityPermissionGroupItemAggregateQuery.php │ │ AuthorityPermissionGroupUserAggregateQuery.php │ │ │ ├─commands │ │ ├─permission │ │ │ FilterAuthorityPermissionToOnlyLeafCommand.php │ │ │ GetAuthorityPermissionAggregateTreeCommand.php │ │ │ │ │ ├─permissionGroup │ │ │ CreateAuthorityPermissionGroupCommand.php │ │ │ │ │ ├─permissionGroupUser │ │ │ CreateAuthorityPermissionGroupUserCommand.php │ │ │ DelAuthorityPermissionGroupUserCommand.php │ │ │ │ │ └─userPermission │ │ GetAllUserAuthorityPermissionsCommand.php │ │ │ ├─config │ │ main.php │ │ │ ├─controllers │ │ PermissionController.php │ │ PermissionGroupController.php │ │ PermissionGroupUserController.php │ │ │ ├─entitys │ │ │ AuthorityPermissionEntity.php │ │ │ AuthorityPermissionGroupEntity.php │ │ │ AuthorityPermissionGroupItemEntity.php │ │ │ AuthorityPermissionGroupUserEntity.php │ │ │ │ │ └─querys │ │ AuthorityPermissionEntityQuery.php │ │ AuthorityPermissionGroupEntityQuery.php │ │ AuthorityPermissionGroupItemEntityQuery.php │ │ AuthorityPermissionGroupUserEntityQuery.php │ │ │ ├─forms │ │ ├─permission │ │ │ AuthorityChildrenPermissionsForm.php │ │ │ AuthorityPermissionCreateForm.php │ │ │ AuthorityPermissionDelForm.php │ │ │ AuthorityPermissionForSelectForm.php │ │ │ AuthorityPermissionIndexForm.php │ │ │ │ │ ├─permissionGroup │ │ │ AuthorityPermissionGroupCreateForm.php │ │ │ AuthorityPermissionGroupDelForm.php │ │ │ AuthorityPermissionGroupForSelectForm.php │ │ │ AuthorityPermissionGroupIndexForm.php │ │ │ AuthorityPermissionGroupViewForm.php │ │ │ │ │ └─permissionGroupUser │ │ AuthorityPermissionGroupUserCreateForm.php │ │ AuthorityPermissionGroupUserDelForm.php │ │ AuthorityPermissionGroupUserIndexForm.php │ │ AuthorityPermissionGroupUserViewForm.php │ │ │ └─models │ │ AuthorityPermissionGroupItemModel.php │ │ AuthorityPermissionGroupModel.php │ │ AuthorityPermissionGroupUserModel.php │ │ AuthorityPermissionModel.php │ │ │ └─querys │ AuthorityPermissionGroupItemModelQuery.php │ AuthorityPermissionGroupModelQuery.php │ AuthorityPermissionGroupUserModelQuery.php │ AuthorityPermissionModelQuery.php │ └─tables │ AuthorityPermissionGroupItemTable.php │ AuthorityPermissionGroupTable.php │ AuthorityPermissionGroupUserTable.php │ AuthorityPermissionTable.php │ └─querys AuthorityPermissionGroupItemTableQuery.php AuthorityPermissionGroupTableQuery.php AuthorityPermissionGroupUserTableQuery.php AuthorityPermissionTableQuery.php 一、controller层 (查看上面参考) 1.响应前端传来的数据,将json数据、stdin数据等都转换成数组,然后传递给form层 2.接受form返回的数据,并整合成json 3.前端一般推荐post请求 3.一个controller action可以调用多个form,从而打包返回给前端,避免多次请求 二、form层,表单层 (查看上面参考) 1.响应controller来的数据,并返回数据给controller层 2.调用command或者Aggregate,AggregateQuery等返回结果 3.调用其他form,完成复杂操作
三、m层多层结构 这里是正常mvc里model层的扩展,分为以下几个层次 1.table层 (查看上面参考) 顾名思义,是从数据表里直接生成的,一般使用gii直接生成,不用处理,完成数据库阶段的验证,比如id必须是整型等 为了消除列歧义,数据库字段必须加上表明,例如team_group__id,命名格式:表明__字段名 2.model层 继承自 table层 (查看上面参考) model层用来屏蔽数据库底层,例如数据库中字段为team_group__id,在model层中使用getId,setId来进行代理 model层规定底层数据返回 3.entity层,实体本身的属性 (查看上面参考) 这里返回类成员变量(不是关联表),例如model中定义的是width和height,那么entity中的square定义面积 =
t
h
i
s
?
>
w
i
d
t
h
?
this->width*
this?>width?this->height, 这里要顶返回detail,list 4.Aggregate层,负责处理关联 (查看上面参考)
public function getGoodsAggregate()
{
return $this->hasOne(GoodsAggregate::class, ['id' => 'gxxy_order__goods_id']);
}
5.command层, (查看上面参考) 用于解决关联表之间的写问题 例如更新了订单完成后需要发送一个通知给客户,需要单独做一个command 成员变量:UserAggregate,OrderAggregate 只有一个方法:execute 返回,可以为true,或者异常
领域驱动参考文章:https://segmentfault.com/a/1190000021576876
|