PHP微信公眾開發筆記(五)
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的話,不保證能處理好這個包含關系。