🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
![](https://box.kancloud.cn/6b6ba77a2bb4ccfd85b6ae81f24b113f_995x686.png) # 后端 ## ThinkPHP5.1底层 与之前WeiPHP版本不同,从WeiPHP5.0开始,WeiPHP与ThinkPHP之间采用低耦合的开发方式,所有的WeiPHP功能实现都在ThinPHP应用里实现,不修改ThinkPHP核心任何一行代码,因此开发者可以直接升级更新ThinkPHP核心。 升级方法有两种,一是直接下载ThinkPHP核心覆盖代码到thinkphp目录下即可,另一种方法是使用composer更新。 cd(切换)到你的应用根目录下面,然后执行下面的命令进行更新: `composer update topthink/framework` ## WeiPHP核心层 借助于ThinkPHP的common应用,实现WeiPHP的核心功能 ### 控制器核心功能 ![](https://box.kancloud.cn/55d99509880e476adbdaaa989bf5e045_821x462.png) 所有插件业务逻辑都需要继承上图中的***Base控制器,比如Api类就继承ApiBase,后台页面的管理功能类就继承WebBase: #### ApiBase控制器 它主要封装类似微信接口的access_token安全验证机制(access_token和check_access_token),常用数据返回方法(api_success和api_error)和空操作方法(_empty) 在我们核心的商城开发过程中,为了兼容公众号和小程序开发,我们除了使用mpvue框架外,还有一种更原始的实现方式,这就是我们借助ThinkPHP的空操作机制实现Web和Api共用一套业务处理方法。原理如下: ![](https://box.kancloud.cn/b2c98de11346f184176b489eb6f3419d_504x367.png) 具体可以直接查看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可以不再使用 ### 模型核心功能 ![](https://box.kancloud.cn/872b4e0d753a15cceba962a4b30af343_557x265.png) 建议所有的WeiPHP模型类都继承WeiPHP的Base模型类,例子: ``` namespace app\common\model; use app\common\model\Base; /** * 用户模型 */ class User extends Base { } ``` 当然如果你不想使用,也可以直接继承ThinkPHP的Model模型类就行。