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

前言

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

前期预备

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

127.0.0.1	milfun.com
复制代码

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

<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中的参数,bash

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

在这里插入图片描述
我将返回数据写成了R方法,用户就能够快速返回code,message及data Json格式的数据供前端使用。

路由控制

在这里插入图片描述
例如: 当用户访问: milfun.com/jobs/ 将会自动跳到app目录下的jobs.php文件中,若是jobs.php不存在则会自动新建一个。

业务处理

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

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

在这里插入图片描述
在这里插入图片描述

好处

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

而后在前端中,就不用等待后端全部接口都写好,在来开发了, ide

在这里插入图片描述
除了一些文字数据,也能够模拟头像信息,是否是十分强大。
在这里插入图片描述

说在最后

该项目还未开源,由于一切尚都刚开始,还有太多不足,只供本身使用及优化,若是你确实以为不错,你也能够私信我获取,谢谢支持。函数

相关文章
相关标签/搜索