Programming make the world a better place, anyone can be anything

前言

微信公众号2012年正式推出,至今已走过5个年头,在这五年的时间内,很多微信第三方企业迅速崛起,典型代表有微盟、微客来这些以公众号托管为主的企业。而今天我想跟大家聊的是微信公众号开发这个领域的一些事情。

经历

我是2013年末接触微信开发的,那时候还在上学,有朋友说想在学校搞一个微信公众号卖水果,于是我开始接触微信开发。最开始是看青龙老贼的教程入门的,后来接触到了github上面一个非常流行的类库wechat-php-sdk,再后来接触到了weiphp微擎这样的开发框架,再到现在自己写的框架豆信,在微信开发这个领域已经走过了3个年头,期间开发过微商城、微餐饮、微投票等多款微信端应用,对于微信官方提供的接口算得上是滚瓜烂熟。

产品

最近这段时间,微信小程序(应用号)被炒的非常火,很多企业和个人都等着在下一个风口起飞,渐渐的就有些人不那么看好微信公众号了。作为一个纯技术爱好者,我不敢对公众号或者是小程序未来几年的市场情况和流行度做一个评价。单从开发的角度,给想接触微信开发的朋友介绍几款产品。

  • wechat-php-sdk wechat-php-sdk是一个专门用于微信开发的类库,在github上面开源,有3000+的star,市面上很多与微信公众号相关的产品都有用到这个类库,其对微信官方提供的接口进行了高度封装,集成此类库后,在自己的应用中只需要简单的配置即可调用微信官方开放的诸多功能。对于产品形态不过度依赖微信,只想在自己的产品中简单集成微信端功能的开发者来说,可以选择此类库进行开发,此类库支持composer依赖安装。

  • weiphp 在搜索引擎上搜索微信开发框架,排在前面的几个产品中便有weiphp。weiphp是一个专门用于微信公众号开发的CMF系统(内容管理框架),基于onethink开发,支持通过插件来扩展功能,目前最新的版本是3.0。我是2014年夏天接触到weiphp的,花了差不多一年的时间,成为了weiphp社区最活跃的开发者,写了几篇**《分分钟上手weiphp插件开发》**系列教程,还录制过几个weiphp插件开发的视频。后来因为不是很喜欢weiphp框架的一些特性,便退出了weiphp的圈子。总的来说,weiphp的优点是上手容易、扩展方便、商业友好,自己改一改拿来给客户做做微信外包还是很方便的。缺点就是社区不够活跃,官方支持不够,产品迭代速度太慢。

  • 微擎 在我看来,微擎可以算得上是目前国内最成熟的微信开发框架,功能非常完善,开发者众多,社区活跃,官方应用商城拥有3000+的扩展功能,诸多的商业用户支持。我最开始接触微擎也是在2014年夏天,那时候在微擎与weiphp之间,我选择了后者,原因是因为微擎的开发文档内容太多,看起来有点摸不着头脑,觉得入门可能比较困难,便放弃了。后来看到微擎逐渐把开发者分成机制完善,很多做微擎的开发者在微擎的平台上获得了不菲的收入,心里多少感觉有点遗憾。对于想要选择微擎进行开发的开发者来说,有几点是需要考虑的。首先是微擎的框架相比于thinkphp、YII这种的主流框架来说,上手不是特别容易。再就是微擎的功能虽多,但是对于喜欢小而美,不需要集成过多微信端功能的产品来说,过多的封装显得不是很灵活。第三点,也是最重要的一点,安装微擎框架后需要连接云服务才能更新框架,并且需要购买商业版才能去除版权,对于喜欢商业友好,不愿意花钱买商业版的开发者来说,微擎可能不是最好的选择。

  • 豆信 豆信是一款专注于微信公众号开发的框架,基于thinkphp3.2.3开发而成,自主研发的插件扩展机制、模板视图工具使得豆信可以用来快速的集成微信公众号常用的功能。豆信官网的宣传语是“从未见过哪一款开发框架,如此这般简洁优雅”,虽然说的有点夸张,但是通读豆信源代码,可以在很多地方看到框架设计的优雅之处:核心源代码压缩后仅2.4M,真正的小而美;使用豆信封装的视图工具,20行以内的代码可以实现一个功能后台的增删改查;使用豆信封装的微信接口,三行代码可以搞定微信支付;高度集成wechat-php-sdk,能够灵活的处理微信端的各类消息;代码极其注重工整性,处处体现细节。豆信是一款商业友好的框架,基于apache2.0协议在github开源,官方提供社区支持与扩展服务。

顺便提一句,豆信是我一个人独立开发的产品,虽然再说下去有王婆卖瓜的嫌疑,但是下面我还是想用几张图来简单介绍一下这一款优雅的微信开发框架。

  • 简洁 豆信是一个非常简洁的开源框架,对业务逻辑进行了高度封装,自主研发的视图构建工具大大简化了模板布局的工作,豆信核心文件的代码体积压缩后仅2.4M,功能完整性丝毫不亚于市面上已有的体积为几十M的框架。

  • 高效 豆信引入了github上最为流行的wechat-php-sdk,对微信接口进行了高度封装,系统内核封装的微信交互Api能够对微信端发送的文本、语音、图片、位置、链接、短视频等类型的消息进行高效的处理,同时能够通过后台配置把用户关注、取消关注、点击菜单、上报地理位置、扫描带参数二维码等事件型消息分发到插件进行处理,这让微信交互处理变得非常灵活。

  • 优雅 豆信是一个非常优雅的开发框架,非常注重代码的工整性、可复用性,和功能的实用性、易扩展性。通读豆信源代码,在很多地方都能看到注重细节的体现。

  • 易扩展 豆信自主研发了一套插件扩展机制,可以把微信消息分发到插件进行处理,在插件中可以获取粉丝信息、自定义分享、发起微信支付、调用模板通知等。通过插件来扩展功能变得非常容易。

  • 社区支持 为了让框架能够更加快速良好的发展,豆信提供了社区支持:http://bbs.douchat.cc/ 在豆信社区可看到豆信框架的更新动态、发布的扩展功能,也可以在这里提交豆信使用过程中发现的BUG、一些功能建议,还能跟所有的社区成员一起讨论、交流、分享你在开发或使用过程中的心得与感悟。

  • 扩展服务 豆信云商城提供多款官方/开发者发布的插件,在这里你可以找到你想要的资源。

写在最后

这篇文章结合本人这几年的微信开发经历,给大家简单介绍了几款常用的微信开发框架,最后用了很大的篇幅来详细介绍了豆信这一款产品,希望不会给大家造成**我是来打广告的**这样的误解。如果你是一个微信开发爱好者,欢迎对文中提到的内容进行补充,如果有表述不到位的地方,也欢迎批评指正。