如何用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

在這裏插入圖片描述
除了一些文字數據,也能夠模擬頭像信息,是否是十分強大。
在這裏插入圖片描述

說在最後

該項目還未開源,由於一切尚都剛開始,還有太多不足,只供本身使用及優化,若是你確實以爲不錯,你也能夠私信我獲取,謝謝支持。函數

相關文章
相關標籤/搜索