Laravel 架构
2019-03-26 09:34:39 0 举报
这是根据较为复杂业务的php架构设计的 比较适合中型项目 不适合小型快速开发项目
作者其他创作
大纲/内容
服务层services
调用逻辑处理
模型model
中间件
提交需求
分发事件
模型Model:
使用php扩展和依赖库 必须确保有有人维护更新没人维护的一概不考虑使用,
修复BUG
调用数据库
路由层
事件系统
再测试
调用数据层
工具层uitl
1.控制器主要负责协调各方2.如果就只有查询 新增数据 没有任何业务处理 可以直接调用数据仓库层 3.控制不可以调用逻辑层4.控制可以控制不同服务(功能)看业务需求5.控制器不写任何业务处理和数据操作
公司自己开发依赖库Libs
传参验证
PC端
1.单项具体业务逻辑处理2.只有服务层调用逻辑层 控制器不能调用逻辑层 逻辑层不能调用服务层和控制层
控制器:
版本分离version
控制层controller
逻辑层logic
中间件middleware
后端开发
异常捕获
数据仓库层Repository
后置中间件
每个版本控制器
Redis缓存
Laravel 请求周期:https://learnku.com/docs/laravel/5.6/lifecycle/1358
调用依赖库
表单验证
1.服务层为控制器提供相应服务和功能模块2.服务层只有控制器能调用, 服务层之间不能相互调用和不能调用控制器 3.服务层可以调用逻辑层(Logic)工具层(util)数据仓库(Repository) 依赖库(Libs)4.服务层是存在较多业务逻辑5.复杂服务业务(复杂功能)可以将功能拆分到逻辑层,进一步细分功能
控制器ControllerCommon 基类
调用工具
中间件:
设计审核/定稿
逻辑层:
Laravel服务容器: https://learnku.com/docs/laravel/5.5/container/1289
服务层:
开发流程:
目录结构:https://www.processon.com/mindmap/5aabc7f6e4b0a846840b6306#
调用数据
数据层仓库Repository
依赖库Libs
逻辑层LogicCommon基类
服务层ServiceCommon基类
服务层service
路由
数据库
服务层 service
调用服务处理
控制器controller
移动端
API入参/出参
日志记录
逻辑层可以看作复杂服务层下面处理单项业务逻辑的,将复杂的业务进行细分,
后端开发流程:
各部门评估/制定开发计划
数据库规划修改
调用数据仓库
数据规划/建模
权限控制
数据仓库层:
完成测试
测试
1.数据仓库层为业务场景提供数据操作2.数据仓库只做数据增删改查 缓存数据 不做任何和数据无关操作
前置中间件
调用工具层
每个版本服务层
Laravel核心就是服务容器,路由、中间件、控制器还有各种什么服务层逻辑层工具层数据仓库层都是独立服务容器。Laravel会按请求周期提供相应的服务
面向接口编程
服务层可以看作提供各种服务或者功能的一层,每一项服务都是独立的
调用服务层
控制器可以看作人大脑可以同时控制手脚完成一套操作。控制多个服务层服务完成业务处理。具体看业务需求
Laravel服务提供器: https://learnku.com/docs/laravel/5.5/providers/1290
1.工具层不包含任何数据处理和业务逻辑处理2.工具层那里需要工具都可以调用
工具层:
HTTP/HTTPS
1.Eloquent 模型约定2.Model不做数据库操作,数据库增、删、改和查具体操作放在仓库层
Laravel 架构
工具层跟现实中工具一样 class 对象可以看作一个工具箱 function方法 可以看作一个工具 举例:class number 编号工具类 里面可以生成 学员编号studentNo方法 生成公司companyNo方法class RegularExpressionUtil 正则表达式工具类 判断手机号正则 function isMobile(string $phone): bool 判断邮箱正则 function isEmail($email)
UI/UE设计
调用逻辑层
上线
API管理
前端开发
调用处理业务逻辑
数据库管理员审核
1.Laravel 中间件提供了一种方便的机制来过滤进入应用的 HTTP 请求2中间件可以用来验证用户的身份认证等操作3.中间可以用来记录日志等操作
需求审核/确认
Laravel Contracts: https://learnku.com/docs/laravel/5.5/contracts/1292
继承common/base
调用缓存
调用/调试API数据
0 条评论
下一页