2021-06-29

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>widththis->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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值