设计思路:领域驱动设计
1.基础服务层:DI容器,service,router-rule,access-token,logger,validation,exception…
2.领域模块:modules(admin,api
3.基础数据模块:models
4.领域下的数据模块:
项目目录:动因商城Phalcon框架整理
实现
1.简化配置文件
2.结构化框架Service注册部分实现
3.结构化框架Exception管理
4.结构化Module 内的Event绑定
5.重构路由白名单/权限验证AccessControl
5.按照固定的设计规范梳理出适合当前开发需求的框架结构
备注:
1.基础类:
作用:统一常用类属性1.属性是否可读/可写,2.属性/方法是否存在,3.调用不存在方法/属性时统一抛出可捕获异常
实现:重写__get(),__set(),__call(),完成hasPorperty()….
2.异常管理:
作用:规范代码中抛出的异常,给开发人员提供更直观的异常处理提示
实现:所有异常都需要继承父类XXXException,表意化重命名,设定getName方法
3.事件:
作用:解藕逻辑,保持各模块代码统一
实现:各个模块下event目录下的所有类 都需要被反射注入到当前模块下
4.消息队列模块:
作用:即时消息:解藕业务,分离主/副业务流程 延时消息:
实现:RabbitMQ等消息组件使用/阿里云消息队列服务
5.用户鉴权:
作用:在运行到指定子模块下时,对当前的URL进行各种鉴权,统一处理
实现:子模块配置路径白名单,在访问路径时,通过重写baseControll的初始化方法进行校验
6.日志记录服务: -作用:统一日志记录服务,解耦业务,方便问题排查
- 实现:日志存储服务,解析服务,日志查询,可视化服务ELK/阿里云日志服务
*git服务,代码提交管理,50行高度,120列长度
*【1】.领域驱动设计在互联网业务开发中的实践