• 系统框架图
  • 后端
    • ThinkPHP5.1底层
    • WeiPHP核心层
      • 控制器核心功能
        • ApiBase控制器
        • WebBase控制器
        • WapBase控制器
      • 模型核心功能

    系统框架图

    系统框架图 - 图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模型类就行。