系统框架图

系统框架图 - 图1

后端

ThinkPHP5.1底层

与之前WeiPHP版本不同,从WeiPHP5.0开始,WeiPHP与ThinkPHP之间采用低耦合的开发方式,所有的WeiPHP功能实现都在ThinPHP应用里实现,不修改ThinkPHP核心任何一行代码,因此开发者可以直接升级更新ThinkPHP核心。

升级方法有两种,一是直接下载ThinkPHP核心覆盖代码到thinkphp目录下即可,另一种方法是使用composer更新。

cd(切换)到你的应用根目录下面,然后执行下面的命令进行更新:composer update topthink/framework

WeiPHP核心层

借助于ThinkPHP的common应用,实现WeiPHP的核心功能

控制器核心功能

系统框架图 - 图2所有插件业务逻辑都需要继承上图中的*Base控制器,比如Api类就继承ApiBase,后台页面的管理功能类就继承WebBase:

ApiBase控制器

它主要封装类似微信接口的access_token安全验证机制(access_token和check_access_token),常用数据返回方法(api_success和api_error)和空操作方法(_empty)

在我们核心的商城开发过程中,为了兼容公众号和小程序开发,我们除了使用mpvue框架外,还有一种更原始的实现方式,这就是我们借助ThinkPHP的空操作机制实现Web和Api共用一套业务处理方法。原理如下:

系统框架图 - 图3

具体可以直接查看WapBase和ApiBase这两个文件里的_empty方法

WebBase控制器

后端PC管理业务需要继承它,它主要实现以下几个功能:

1、管理员登录状态审核,未登录跳转到登录界面2、当前登录管理员信息初始化,方便程序直接调用3、界面菜单数据获取4、实现通用的列表界面功能5、实现通用的编辑界面功能6、实现通用的新增界面功能7、实现通用的删除界面功能8、实现通用的配置界面功能9、实现通用的导出数据功能

上面所谓的通用是指在WeiPHP中,我们在数据模型定义完成一个数据表后,在管理员界面就可以自动实现这个数据表常用的列表,增加编辑等功能,不再需要开发者做重复的工作,这也是WeiPHP最大魅力之一。

WapBase控制器

专为微信公众号页面提供的父类,它主要实现以下几个功能:1、微信公众号信息初始化2、公众号页面需要的JS-SDK参数获取3、当前公众号粉丝实现自动获取,自动登录4、当前粉丝信息初始化,方便后面程序直接调用

后续采用mpvue开发后,公众号界面直接使用API获取数据,WapBase可以不再使用

模型核心功能

系统框架图 - 图4

建议所有的WeiPHP模型类都继承WeiPHP的Base模型类,例子:

  1. namespace app\common\model;
  2. use app\common\model\Base;
  3. /**
  4. * 用户模型
  5. */
  6. class User extends Base
  7. {
  8. }

当然如果你不想使用,也可以直接继承ThinkPHP的Model模型类就行。