前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用PHP写个优雅的Mock框架

如何用PHP写个优雅的Mock框架

作者头像
猿哥
发布2019-11-27 16:41:45
6370
发布2019-11-27 16:41:45
举报
文章被收录于专栏:Web技术布道师

前言

由于工作中前后端开发工作分离的问题,现阶段后端功能怎在设计中,前端UI也正在调整中。好像项目也无法开始。于是为了满足提前开发,不用自己创造数据,就尝试使用mock类工具。尝试过Mock.js对于硬编码的mock不是特别喜欢,也搭过express server,也不是太如我意。就尝试用php写了个小框架,配合Faker,实现了数据的模拟。在我眼中,这才是真正的分离,前后端的中间件

前期预备

修改本地host,(C:\Windows\System32\drivers\etc\hosts)配置一个虚拟域名给localhost。在最后一行中加入:

代码语言:javascript
复制
127.0.0.1	milfun.com

然后在Apache的conf文件中修改httpd-vhost.conf文件,将刚才的虚拟域名加进来。

代码语言:javascript
复制
<VirtualHost *:80>
    DocumentRoot "D:\zend\Apache24\htdocs\MilFun"
    ServerName milfun.com
    <Directory "D:\zend\Apache24\htdocs\MilFun">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

框架开发

框架目录

主要分为两个文件夹,MilFun为框架核心文件,app为项目实际开发目录。图中的Faker就是php的mock插件。

入口文件
核心函数

既然是中间件,我觉得能实现一些基本功能就好——输入与输出

基本框架:就是十分成熟的MVC结构,但是这里只实现C就好,因为是模拟接口,只要能控制业务跳转就好。业务清晰:所以分析url地址然后分配路由,跳转至对应的php文件,也要有能力获取url中的参数,

接口数据:返回符合格式的Ajax数据。

我将返回数据写成了R方法,用户就可以快速返回code,message及data Json格式的数据供前端使用。

路由控制

例如:当用户访问:milfun.com/jobs/ 将会自动跳到app目录下的jobs.php文件中,如果jobs.php不存在则会自动新建一个。

业务处理

在jobs.php中只有两个函数。All就是url中只有控制器不带任何参数,则会进入All方法中,有带参数则进入One方法中。当然你也可以在这两个方法中写些判断,跳转至具体的业务方法中。

上图中的方法则会自动返回名字、邮箱和地址。

好处

可以不用等待后端功能都开发完毕,再调用数据接口,直接使用模拟数据就好。也可以使用这个项目和后端约定好数据返回的格式,参数。到时候直接修改接口地址就好。这才是真正的解耦吧!

然后在前端中,就不用等待后端所有接口都写好,在来开发了,

除了一些文字数据,也可以模拟头像信息,是不是十分强大。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PHP技术大全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 前期预备
  • 框架开发
  • 好处
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档