PHP搭建简单暴力的mvc
时间:2022-04-09 03:57
对于一个web系统来说,我们使用mvc很必要, 给我们带来的是清晰的结构,易运维,易扩展,
mvc 我对其的理解应该叫mxvc, 多了一个x , 这个x代表什么,x可以理解为 relay,proxy,adapter 亦可,
先来看下面这张图
这是我们系统的mxvc结构图, 大概分成四个部分,
第一部分 php-libs
这是提供mvc框架的底层库,这块需要注意的是这是一个和业务无关的代码模块,里面还有数据库封装类等, 我把数据库也画在
这个图中了,可以看出数据库的重要性,其实所有的web系统都是围绕着数据库增删改查上面的封装
把数据库画出来还有个重要的目地是告诉大家对数据的操作要入口唯一, 在我系统里面只有DAO
下面封装的类可以访问到数据库,入口的唯一虽然有短处,但是利大于弊,切记
第二部分 controller
我们先来说控制层,最后再说mx,
从系统结构上来说controller是接入层,这里面的类是相互独立的,也就是说我们在controller类里面写的方法,理论上只能被类自己的其他方法使用,所以写的每个方法都要考虑好,是不是应该放在这里面还是放在mx里面,我们要衡量好,同样功能的方法最好不要出现第二次,这里面的代码要很简洁,最好不要有太多的业务逻辑的处理,全部交给后端的逻辑层去处理,
第三部分 view
这里面也就是前端,静态文件css js pic 还有template 记住这里面的静态文件是不走后端业务逻辑的,用户可以直接访问的,所以要设计好你的文件夹结构, 哪些可以暴露,哪些不可以暴露
第四部分 mx 即model +x ( proxy/adapter/relay )
毋庸置疑这是你系统最重要的部分,心脏,
简单说一下我们的设计, 这里面有两个公用的文件夹,Service和Utils 他们分别放公共的服务类和工具类,
比如你的异常封装类和错误码都可以放在Service里面,utils下面比如你的getClientIp这样的方法可以放在这个下面
这里面的DAO可以看到所有数据库的封装类在这个下面都可以找到,而且出处唯一,只有这里面可以找到,基本上一个表对应一个类即一个文件, 这里面的文件比较简单就是数据库的增删改查,保证如果外面想对这个表操作只有通过这个类才可以实现
下面就是X 因为我们一个前端的请求可能需要多个表的结果,或者一个封装好的数据接口可以提供给上游好几个controller共用,
这个时候X的价值就体现出来了, 保证代码的简洁,提高代码的复用全靠这个层的代码了,更多的细节可以自己慢慢总结,
只要我们有清晰的逻辑设计,职责清晰,分工明确的代码,兵来将挡水来土掩,即使有大的改动也不怕
链接提供上面架构的php-libs : https://github.com/Allenhaozi/crab 供参考
-
< CentOS-6.4 安装 PHP Memcached 扩展
-
js 时间戳 字符串 转 时间对象 >
相关推荐
- html5有哪些新特性
- 小程序开发中 在 wxml格式化 属性断行
- 爬取小程序所有教程scrapy
- 小程序图片开发工具能显示真机调试和体验版不显示
- uView下拉框在微信小程序里不显示问题
- 小程序接口请求封装
- 【学习记录】微信小程序:前端开发实战
- 基于uni-app全端弹框组件uaPopup「兼容h5+小程序+app端|nvue」
- 小程序架构设计(一)
- kubernets kube-proxy的代理 iptables和ipvs
电脑软件
本类排行
- 1小程序登录后端实现
- 2微信小程序中点击选项卡路由跳转问题
- 3微信小程序中如何识别银行卡和身份证
- 4利用uni-transition实现微信小程序底部浮层
- 5M1 的电脑安装iPad微信教程
- 6微信h5支付
- 7uni-app调用微信收货地址的原生界面,并返回用户填写的地址信息到上一个页面
- 8微信公众号如何做数据分析
- 9Hbuild打开微信小程序失败
- 10小程序架构设计(一)
今日推荐
-
peel遥控器免费版
版本:v1.0.0
大小:55.97MB
日期:2024-06-09
-
闲游盒官方版
版本:v1.0.5
大小:28.72MB
日期:2024-06-09
-
网络鸟日历天气完整版
版本:v0.0.4
大小:24.49MB
日期:2024-06-09
-
15日气象预报正式版
版本:v1.0.0
大小:41.18MB
日期:2024-06-09
-
妙笔生图画画完整版
版本:v1.1
大小:69.67MB
日期:2024-06-09
-
今日水印记录免费版
版本:v1.0.1
大小:88.77MB
日期:2024-06-09
热门手游
-
奥特曼激斗传官方版
版本:v2.00
大小:16.07MB
日期:2024-06-08
-
小狐狸冒险完整版
版本:v0.1
大小:22.73MB
日期:2024-06-08
-
代号:Jump安卓版
版本:v0.80.1
大小:1MB
日期:2024-06-08
-
极速变色龙免费版
版本:v1.2
大小:21.46MB
日期:2024-06-08
-
真实坦克驾驶破解版
版本:v1.0.1
大小:145.83MB
日期:2024-06-08
-
鱼食者官方版
版本:v1.2.1
大小:161.9M
日期:2024-06-08