PHP微信公众开发笔记系列
日期:2014.9.3
今天做了身份验证的功能,然后完善了下搜索功能。其实主要的是将整个代码结构整理了一番,应该可以说是模块化设计吧。
模块化设计我们的公众号。
因为我们之前提的功能需求中有:
1、菜单--查询功能。我考虑到后期功能的扩展,就想将这些分模块来实现:菜单模块(这样,今后我们需要添加新的菜单功能,可以直接在这个模块里操作,这样修正和维护也简单,在考虑到后期可能会分工协作的时候各开发者之间不会产生冲突);
2、数据库模块(这里就主要是负责数据库相关的工作,如添加、修改、查询等);这是针对当时提出的两个功能需求。
后来我想了想,公众号不仅仅是用来做查询工作的,因此我又有了以下的构想:
3、有的时候可能需要互动啥的,因此我就将“菜单”指令作为我们实现的菜单模块的入口,即发送“菜单”就会进入服务号的菜单模块中,然后再发送“查询”指令,就进入了具体的查询功能了。而发送“退出”则退出了菜单模块。
4、在我们退出了菜单模块后,用户发送的指令将会有一个叫做关键词捕获的模块来响应用户的操作,捕获特定的用户指令来跟用户做互动。
5、有一些操作,如解析数据库中地址信息、一些关键词回复tips等通用功能,我们应该又可以封装为一个操作模块了。
基于以上考虑和构想,现在我们的公众号代码目录结构有:
PHP代码,没有错误提示(不知道),所以好多语法错误都只能在上传到SAE后,我通过发送消息才检查得到(当然这也说明我很马虎),经常是:要么函数名写错了,要么是函数参数名写错了,要么是语句少些了分号结尾,要么是变量前面少写了$符号。。。好多这样的错误;
2、数据库:做帐号信息认证的时候,因为这个认证在我搜索功能之前,所以就忘了首先连接到数据库。然后我在做认证的时候,因为要查找数据库中的信息,但是我没有连接到数据库,所以就一直查找错误查找错误。。。折腾了好久,这也暴露出了我不够细心的毛病;
3、require/include/require_once/include_once 这些滥用。PHP中好像是不能重复include、require文件,所以就有require_once 、include_once 这两个了。当时我对那个不能重复包含的理解是同一个文件中不能重复包含(就老是出现函数多次被包含的错误),后来才知道不是这个意思。我现在的处理方法是,tools里面的函数,我只在index.php里头include,然后模块内的函数用require_once
来操作,因为我可能模块间会互相调用函数,如果用include的话,不保证能处理好这个包含关系。