要了解weiphp的框架设计,需要从三个方面进行理解:一是代码的目录结构;二是weiphp执行的流程;三是微信交互的流程。

目录结构

由于基于oneTink,因此代码目录结构也与其一致:

├─index.php weiphp入口文件

├─Addons 微信插件目录(包括原oneThink插件,微信插件与它的区别看后续的说明)

├─Application 应用模块目录

│ ├─Admin 后台模块

│ │ ├─Conf 后台配置文件目录

│ │ ├─Common 后台函数公共目录

│ │ ├─Controller 后台控制器目录

│ │ ├─Model 后台模型目录

│ │ ├─Logic 后台模型逻辑目录

│ │ └─View 后台视图文件目录

│ │

│ ├─Common 公共模块目录(不能直接访问)

│ │ ├─Conf 公共配置文件目录

│ │ ├─Common 公共函数文件目录

│ │ ├─Controller 模块访问控制器目录

│ │ └─Model 公共模型目录

│ │

│ ├─Home Home 前台模块

│ │ ├─Conf 前台配置文件目录

│ │ ├─Common 前台函数公共目录

│ │ ├─Controller 前台控制器目录

│ │ ├─Model 前台模型目录

│ │ └─View 模块视图文件目录

│ │

│ └─User 用户模块(不能直接访问)

│ ├─Api 用户接口文件目录

│ ├─Conf 用户配置目录

│ ├─Common 后台函数公共目录

│ ├─Model 用户模型目录

│ └─Service 用户Service文件目录

├─Public 应用资源文件目录

├─Runtime 应用运行时目录

├─ThinkPHP 框架目录

└─Uploads 上传根目录

├─Download 文件上传目录

├─Picture 图片上传目录

└─Editor 编辑器图片上传目录

weiphp执行的流程

微信交互

1、用户与微信进行交互,交互的事件包括:回复公众号,扫描与公众号有关的二微码,关注(取消关注)公众号,在公众号里点击自定义菜单等

2、微信把用户的交互事件及相关参数传递给weiphp的微信接口(接口地址由weiphp提供并在公众号的微信管理后台里设置)

3、weiphp接收微信的请求,并把请求的xml转成数组形式提供后续功能使用,这部分处理代码 Application /Home/Controller/WeixinController.class.php,该文件是负责与微信交互的唯一接口。

4、weiphp判断请求的数据类型(如关注公众号还是回复公众号)进行相应的处理

5、如请求的数据类型是回复公众号,weiphp通过查询关键词表找出相应的插件名及具体的业务数据ID

6、通过插件名加载相应的插件,并把微信请求的数据和上一步通过关键词查出来的数据一并传递给到插件里。

7、由插件根据上面的请求数据处理具体的业务并组装返回数据

8、weiphp根据返回的数据再次封装成微信需要的格式并返回到微信里

9、微信根据返回的数据排版好显示给用户,如果返回的数据是带链接可点击的,进入下一步,否则到此为止

10、用户点击内容进入插件提供的地址对应的微网站页面(即3G页面)

11、用户可在微网站页面继续完成相应的业务操作,如投票,考试等,直到操作完成为止

weiphp看版本_weiphp 简介--笔记相关推荐

  1. weiphp看版本_安装WeiPHP

    >[info] 安装视频教程请看这里: >[info] [安装视频教程](http://v.qq.com/vplus/6ea5afa98685158967d5bd9617482a49/fo ...

  2. weiphp看版本_序言 · weiphp5.0二次开发手册 · 看云

    WeiPHP5.0,公众号与小程序结合的最佳开发框架 WeiPHP5.0是一个开源,高效,简洁的移动应用系统,它实现一个后台同时管理和运营多个客户端(公众号,微信小程序,后续将支持支付宝小程序,百度小 ...

  3. uc浏览器TV版最新版本功能简介

    uc浏览器TV版最新版本功能简介 UC浏览器TV版怎么样?提起UC很多人都知道,不就是那款在手机上很火的浏览器么?而要说到UC电视版,知道的人就不多了.本月初,UC发布了旗下首款PC版浏览器,网友们试 ...

  4. 第64节:Java中的Spring Boot 2.0简介笔记

    Java中的Spring Boot 2.0简介笔记 spring boot简介 依赖java8的运行环境 多模块项目 打包和运行 spring boot是由spring framework构建的,sp ...

  5. lfs(systemv版本)学习笔记-第1页

    一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客记录学习笔记,如有写的不恰当的地方,望多多指正. 笔记中只是记录一些问题 ...

  6. Git 版本管理系统简介和远程仓库

    版本管理系统简介 项目的版本 版本和我们平常说的软件.游戏等的版本是一个意思,比如 1.2.8 版本.比如 第1版,比如webstorm2020. 所以,版本指的就是代码编写进度当中的一些节点. 比如 ...

  7. Hubble.Net 0.1 版本算法简介

    Hubble.Net 0.1 版本算法简介 Eaglet     经过3周的开发,Hubble.Net 0.1 版本已经完成.这个版本不是一个可以商业应用的版本,准确的说其只完成了一些最核心的算法.发 ...

  8. weiphp 简介--笔记

    注意: 如果你有什么问题,可加入官方QQ群进行讨论: 329650736[已满],8322255   一.简介 weiphp是一个开源,高效,简洁的微信开发平台,它是基于oneThink这个简单而强大 ...

  9. 红旗 linux 在哪儿 看 版本,简介红旗Linux不同版本的介绍

    Linux经过长时间的发展,很多用户都很了红旗Linux了,这里我发表一下个人理解, 声卡驱动问题比较多,可能很多情况下没有声音 Intel集成显卡在通过图形方式设置分辨率时,有出现崩溃的可能 集成的 ...

最新文章

  1. Day9:yield的表达式形式、面向过程编程(grep -rl 'root' /etc)
  2. “jQuery风暴” 推荐及配套代码下载
  3. tcp3次握手、4次挥手
  4. ORACLE IMP-00017: following statement failed with ORACLE error 6550
  5. 带Spring Boot的GWT
  6. python中的numpy函数算相关系数_NumPy ufunc通用函数
  7. Ext Designer Preview生成代码在html上显示步骤
  8. C#利用NI VAS采集图片
  9. 三:Java+SpringBoot框架使用(携带cookies信息访问的get接口开发)
  10. java无框架开发,DON: java 小型web项目快速开发框架,实现无配置,直接关注业务开发.主要解决请求分发解析...
  11. hive 操作(五)——常用内置函数
  12. Linux安装SmartSVN及破解
  13. Web性能测试工具:http_load安装使用简介
  14. https方式nginx 代理tomcat访问不带www的域名301重定向跳转到www的域名帮助seo集中权重...
  15. 【HDU - 4794】Arnold【斐波那契数列循环节】
  16. 自己对war包解压的误区
  17. WPS自动生成图片目录
  18. 设计师学python有什么用_Python是个什么鬼?为什么设计大牛都在学它?!
  19. 我们如何获取信息,组织知识
  20. 挑战微信?三大运营商的目的或许不在这

热门文章

  1. 武大教授计算机学院,牛晓光(武汉大学计算机学院教授)_百度百科
  2. 机器人炒菜感想_炒菜机器人_五年级作文
  3. 神经营销:善用大脑科学做营销
  4. 如何快速判断一个文件是否为病毒 by 是昔流芳
  5. Mac风扇声音大的原因以及如何解决
  6. 【i春秋】安全圈玩起了直播,学霸”带你玩转CTF
  7. 室内设计包括灯光设计吗?如何营造出适合自己的灯光环境?
  8. 搭建Flink编程开发平台
  9. 【ARPG/MOBA类游戏游戏系列】技能系统设计
  10. 【论文分享】Mobile3DScanner: An Online 3D Scanner for High-quality Object Reconstruction(2021 IEEE)