微信开发学习日记(八):7步看懂weiphp插件机制,核心目标是响应微信请求
第1步:
配置微信公众号,http://weiphp.jiutianniao.com/ ... .html
从上面这个配置可以看出,微信请求呗weiphp的入口文件index.php接收了,可能会被/home/weixin/index/这个action响应。
第2步:
index.php入口文件,校验了是否是微信请求。
/**
* 微信接入验证
* 在入口进行验证而不是放到框架里验证,主要是解决验证URL超时的问题
*/
if (! empty ( $_GET ['echostr'] ) && ! empty ( $_GET ["signature"] ) && ! empty ( $_GET ["nonce"] )) {
}
第3步:
入口已经验证过了,即不是“第一次” ,请求会被分发到home模块的WeixinController的index这个方法。
第4步:
在index方法中, 首先获得的就是token、openid、粉丝等信息。
最关键的处理是,回复数据。
// 回复数据
$this->reply ( $data, $weixin );
第5步:
在reply函数中, 就是寻找合适的插件进行消息响应。
涉及到的问题有,安装了哪些插件、哪些启用了、哪些有权限。
准备了可用插件之后, 根据消息的类型,事件、地理位置、订阅,寻找合适的插件,比如如果有location事件,插件就执行对应的回调方法。
还有的情况是,消息。
根据关键字,回复消息。
这个时候,问题就变成了 插件定位问题。
a.通过插件标识名、插件名或者自定义关键词来定位处理的插件
b.通过精准关键词来定位处理的插件 token=0是插件安装时初始化的模糊关键词,所有公众号都可以用
c.通过模糊关键词来定位处理的插件
d.最终也无法定位到插件,终止操作
疑问:通过代码,发现location等事件,有很多插件都会处理这个事件。而消息,只会找到一个插件。是这么个情况么?
第6步:
插件的weixinmodel。
/**
* Vote模型
*/
class WeixinAddonModel extends WeixinModel {
function reply($dataArr, $keywordArr = array()) {
}
微信插件,基本都会有个WeixinModel类,如果有必要,会响应微信的请求。
第7步:
URL响应问题。
这个地方一直有疑惑,如果所谓的插件机制,就是根据用户发送到关键词,让不同的类-插件去响应,这也太没有“含金量” 了吧。难道微信的核心玩法就是这个东东么?
class VoteController extends AddonsController {
}
每个插件,可能会有Controller,响应URL请求。比如,后台管理和前台管理(不会直接和微信进行交互) ,会有一些管理方法,设置信息之类的。
另外,有些在weixinModel的reply 方法中,可能包含了插件内部定义的url,这个感觉才真的很有价值。
总结:weiphp这个微信框架,简要总结起来就4点。
1.weiphp基于Thinkphp和Onethink。疑问的是,weiphp有没有对Thinkphp和Onethink的核心代码有改动。如果有改动的话,更多的应该是对Onethink改动。
2.weiphp的核心入口,就是index.php和/home/weixin/index方法,验证和响应微信请求。
3. 插件机制,感觉就是根据关键字找插件,让插件响应请求。
4.后台管理系统、用户端的前端管理、插件机制,都是为了微信框架的核心目标“响应微信请求”。
这才是最最关键的地方呀。
武汉九天鸟-武汉领先的移动互联网系统开发商
九天鸟问答-http://ask.jiutianniao.com
九天鸟博客-http://blog.jiutianniao.com
九天鸟官网-建设中,敬请期待
2015年4月17日
转载于:https://www.cnblogs.com/qitian1/p/6462784.html
微信开发学习日记(八):7步看懂weiphp插件机制,核心目标是响应微信请求相关推荐
- 微信开发学习日记(一):快速阅读5本书,掌握整体背景
2015年1月开始学习微信开发. 已经有多年开发经验了,从网上文章来看,微信开发主要是接口,然后是业务逻辑,不是很难.所以,我比较强调学习效率.一天学一点,是不能满足我的快速学习欲望的. ...
- 微信开发学习日记(二):3个案例
2019独角兽企业重金招聘Python工程师标准>>> 上次是调通了"消息来自微信请求"一个请求验证接口. 今天下午,正式进军微信开发,完成了3个案例的d ...
- 微信开发学习日记(六):weiphp框架
最近重点在看weiphp这个开源的第三方微信公众平台框架. 在网上找微信资料,找到了这个.很早之前,就初步学习了Thinkphp和Onethink2个开源框架,当看到weiphp是用这2个框架开发的时 ...
- 微信开发学习日记(七):开源微商城wemall
最近嘛,不是在调研PHP和微信的行情么. 发现,微商城是非常火爆的一个领域,既然业务有搞头,那么技术这一块也有很多选择. 网上发现了wemall这个开源的PHP实现的微商城. 下载了开源版本,PHP后 ...
- 微信开发学习二 -- 微信开发入门(简单demo)
一.微信公众平台的基本原理 在开始做之前,先简单介绍了微信公众平台的基本原理. 微信服务器就相当于一个转发服务器,终端(手机.Pad等)发起请求至微信服务器,微信服务器然后将请求转发给我们的应用服务器 ...
- 安卓开发学习日记第三天_新手怪button_莫韵乐的欢乐笔记
安卓开发学习日记第三天--新手怪button (不是buttercup,虽然里面好像也有button,心中已经响起那段音乐了) 前情提要: 第一天学习日记之安装Android Studio3.6 第二 ...
- 安卓开发学习日记第二天_破坏陷阱卡之sync的坑_莫韵乐的快乐笔记
安卓开发学习日记第二天 前情提要:第一天的日记 经过第一天的日记,我们顺利第安装上了Android Studio3.6 第二天内容包括: 1.推荐的文件目录结构 2.如何创建一个项目 3.遇到sync ...
- 安卓开发学习日记第一天(笑)_Android Studio3.6安装_莫韵乐的快乐笔记
安卓开发学习第一天 Android Studio3.6安装 没想到终于要写出自己的第一个博客了 反正是第一篇,有没有人看都无所谓(理智:129/129) 万事开头难,做下去就容易很多了 言归正传 工欲 ...
- 安卓开发学习日记第四天_会爬就会跑_莫韵乐的欢乐笔记
安卓开发学习日记第四天_会爬就会跑 前情提要 安卓开发学习日记第一天Android Studio3.6安装 安卓开发学习日记第二天_破坏陷阱卡之sync的坑 安卓开发学习日记第三天_新手怪button ...
最新文章
- 导师神总结:读博失败的10个作死大法
- 练习2-17 生成3的乘方表 (15 分)
- ajax项目设置,jQuery_ajax预处理_和后置处理;项目中ajax自动设置_token_请求头,_接口响应code的统一处理...
- 数据库保护(数据库备份)Sql Server2012 图形界面操作
- 26/100. Min Stack
- python 关闭 定时开启_Qt多种定时器
- 一种全新的软件界面设计方法
- Lync和Exchange 2013集成PART4:配置统一存档
- C#调用自定义表类型参数
- java 数组 存储_Java-将数组存储到内存或从内存上传到磁盘
- istio入门(01)istio的优势在哪里?
- HBase API 创建表
- Word 里面如何设置多级标题
- Win7安装IIS出错,总是提示“出现错误。并非所有的功能被成功更改。”
- HTML iframe设置背景透明
- 中国最顶级的一批程序员,从首富到首负!
- Proteus仿真51单片机入门
- FICO 财务替代创建
- 图像文件的读写和转换——BMP转YUV
- OpenCV联合Image Watch使用中关于RGB和HSV转换相关知识点