我現在很少有項目使用PHP IMAP擴展的imap_*
功能集。可重複使用的郵件客戶端庫的代碼組織和設計
的任務是獲取郵件,從郵件主機做一些處理,並根據結果,將它們存儲在數據庫或回覆郵件(在IE中。無效的任務請求格式)
與imap_*
功能的工作是一個非常低級任務,有很多重複的代碼,所以我認識到我應該實現一些統一的lib,它將覆蓋imap函數,並讓我在高級的,定義明確的類/接口/對象工廠等上工作。
問題是我應該如何爲此任務組織類/代碼?我知道,設計糟糕的庫比沒有圖書館在所有:)最壞
[編輯]
我最初的想法是創建Transport
類,將包裹連接,隱藏郵箱手柄(的結果imap_open
)內私人財產,並使用imap_*
功能通過__call
魔術。 Secod類將是AccessManager
將使用Transport
類和照顧郵件提取邏輯,並mayby第三Message
對象工廠?或者Message
類應該有一些::createFromSomething()
靜態初始化器?
什麼一直是你如何組織這個最初的想法?一個想法是繪製出你注意到的任何常見數據集合,並將它們組合成一個類。例如,您可以讓Message類保存與單條消息相關的數據,然後Server保存執行任何實際服務器交互以及服務器配置(主機,身份驗證)變量等的函數等。 – Fanis 2011-05-04 19:48:39
我已經描述了我最初的想法有問題的機構 – canni 2011-05-04 20:24:10