【文章內(nèi)容簡(jiǎn)介】
PHP 框架有以下特性: 1. 簡(jiǎn)單易用的 MVC 模式: 模型 ( M):模型的定義由 Model 類來(lái)完成。 Model類位于項(xiàng)目目錄下面的 LibModel 目錄。 控制器 ( C):應(yīng)用控制器(核心控制器)和 Action 控制器都承擔(dān)了控制器的角色,區(qū)別在于 Action 控制器完成業(yè)務(wù)過(guò)程,而應(yīng)用控制器( App 類)負(fù)責(zé)調(diào)度控制。 Action 控制器位于項(xiàng)目目錄下面的LibAction 目錄。 視圖 ( V):模板的實(shí)現(xiàn)是和框架無(wú)關(guān)的,做到了 100%分離,可以獨(dú)立預(yù)覽和制作。模板目錄位于項(xiàng)目目錄下面的 Tpl 目錄。 2. 編譯機(jī)制: ThinkTemplate 是一個(gè)使用了 XML 標(biāo)簽庫(kù)技術(shù)的編譯型模板引擎,支持兩種類型的模板標(biāo)簽,使用了動(dòng)態(tài)編譯和緩存技術(shù),而且支持自定義標(biāo)簽庫(kù)。 3. 模型自動(dòng)驗(yàn)證和處理 : 系統(tǒng)內(nèi)置了數(shù)據(jù)對(duì)象的自動(dòng)驗(yàn)證功能,而大多數(shù)情況下面,數(shù)據(jù)對(duì)象是由表單提交的 $_POST 數(shù)據(jù)創(chuàng)建。需要使用系統(tǒng)的自動(dòng)驗(yàn)證功能,只需要在 Model 類里面定義 $_validate 屬性,是由多個(gè)驗(yàn)證因子組成的數(shù)組,支持的驗(yàn)證因子格式:驗(yàn)證字段,驗(yàn)證規(guī)則,錯(cuò)誤提示,驗(yàn)證條件,附加規(guī)則,驗(yàn)證時(shí)間。 4. 模板引擎:系統(tǒng)內(nèi)建了一款卓越的基于 XML 的編譯型模板引擎,支持 兩種類型的模板標(biāo)簽,融合了 Smarty 和 JSP 標(biāo)簽庫(kù)的思想,支持標(biāo)簽庫(kù)擴(kuò)展。通4 過(guò)驅(qū)動(dòng)還可以支持 Smarty、 EaseTemplate、 TemplateLite、 Smart 等第三方模板引擎。 5. AJAX 支持:內(nèi)置 AJAX 數(shù)據(jù)返回方法,支持 JSON、 XML 和 EVAL 格式返回客戶端,并且系統(tǒng)不綁定任何 AJAX 類庫(kù),可隨意使用自己熟悉的 AJAX類庫(kù)進(jìn)行操作 [6]。 MVC 模式 簡(jiǎn)介 MVC 模式( ModelViewController,模型 — 視圖 — 控制器模式)是 軟件工程中的一種 軟件架構(gòu) 模式。它把軟件系統(tǒng)分為三個(gè)基本部分:模型( Model),視圖( View)和控制器( Controller)。 MVC 的結(jié)構(gòu)如圖 21 所示: M o d e lV i e wC o n t r o l l e rN o t i f yU s e r A c t i o nU p d a t eU p d a t e 圖 21 MVC 模型 說(shuō)明: 模型( Model):模型包含了應(yīng)用問(wèn)題的核心數(shù)據(jù)、邏輯關(guān)系和計(jì)算功能,它封裝了所需的數(shù)據(jù),提供了完成問(wèn)題處理的操作過(guò)程??刂破饕罁?jù) I/O 的需要調(diào)用這些操作過(guò)程。模型還為視圖獲取顯示數(shù)據(jù)而提供了訪問(wèn)其數(shù)據(jù)的操作。模型為視圖獲取顯示數(shù)據(jù)提供了訪問(wèn)其數(shù)據(jù)的操作。為了實(shí)現(xiàn)這種機(jī)制,用于監(jiān)視此模型的視圖必須事先在此模型上注冊(cè),從而視圖可以了解在數(shù)據(jù)模型上發(fā)生的改變。 視圖( View): 視圖部件把表示模型數(shù)據(jù)及邏輯關(guān)系和狀 態(tài)的信息及特定形式展示給用戶。它從模型獲得顯示信息,對(duì)于相同的信息可以有多個(gè)不同的顯示形式或視圖 。視圖通過(guò)顯示的形式,把信息轉(zhuǎn)達(dá)給用戶。不同視圖通過(guò)不同的顯示,來(lái)表達(dá)模型的數(shù)據(jù)和狀態(tài)信息。每個(gè)視圖有一個(gè)更新操作,它可被變化 傳播機(jī)制所激活。當(dāng)調(diào)用更新操作時(shí),視圖獲得來(lái)自模型的數(shù)據(jù)值,并用它們來(lái)更新顯示。 控制器( Controller):控制器 處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶界面于模型間的對(duì)應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進(jìn)而實(shí)現(xiàn)對(duì)模型的計(jì)算控制,是使模型 和視圖協(xié)調(diào)工作的部件。通常一個(gè)視圖具有一個(gè)控制器。 5 3. 需求分析 用例分析 用戶用例 用戶用例圖如 圖 31 所示 。 發(fā)表群組博文瀏覽群組列表評(píng)價(jià)博文瀏覽最新微博瀏覽話題列表瀏覽話題博文回復(fù)博文設(shè)置個(gè)人首頁(yè)推薦自己查看系統(tǒng)推薦查看用戶基本信息發(fā)表話題博文瀏覽群組博文瀏覽好友微博取消關(guān)注關(guān)注好友查找好友注冊(cè)管理博文 in c l u d e in c l u d e 管理用戶信息 in c l u d e in c l u d e 查看個(gè)人主頁(yè)查看系統(tǒng)首頁(yè)管理話題 in c l u d e in c l u d e in c l u d e 管理群組管理好友 in c l u d e in c l u d e 用戶 in c l u d e in c l u d e in c l u d e in c l u d e in c l u d e in c l u d e in c l u d e in c l u d e in c l u d e 圖 31 用戶用例圖 6 用例描述: 名稱、標(biāo)識(shí)符 關(guān)注 好友 功能 功能描述 關(guān)注 好友,獲取好友最新博文動(dòng)態(tài) 性能 當(dāng)用戶點(diǎn)擊“ 關(guān)注他(她) ”按鈕時(shí)響應(yīng)時(shí)間 2s 輸入 用戶基本信息: 好友 ID 操作序列 1. 用戶點(diǎn)擊用戶個(gè)人主頁(yè)中的“ Follow”按鈕; 2. 個(gè)人主頁(yè)通過(guò) AJAX請(qǐng)求服務(wù)器中 FollowAction中的 addFollow方法; 3. FollowAction 創(chuàng)建 FollowModel,裝填并檢驗(yàn)好友 ID,并調(diào)用FollowModel 中的 addFollow 方法,進(jìn)行數(shù)據(jù)庫(kù)更新操作; 4. 服務(wù)器將操作成功狀態(tài)返回至個(gè)人主頁(yè); 5. 將個(gè)人主頁(yè)“關(guān)注他(她)”更改為“取消關(guān)注” 限制條件 1. 必須連接數(shù)據(jù)庫(kù),否則會(huì)出現(xiàn)無(wú)法連接數(shù)據(jù)庫(kù)錯(cuò)誤 2. 必須為本站 已登錄 用戶 接口 點(diǎn)擊用戶頭像 進(jìn)入此頁(yè)面 輸出 返回 用戶個(gè)人主頁(yè) 名稱、標(biāo)識(shí)符 瀏覽個(gè)人主頁(yè)功能 功能描述 已登錄用戶瀏覽 個(gè)人主頁(yè),包 括用戶個(gè)人信息以及好友最新微博動(dòng)態(tài) 性能 當(dāng)用戶 訪問(wèn)個(gè)人主頁(yè)時(shí)等待頁(yè)面時(shí)間 5s 輸入 用戶基本信息: 用戶賬號(hào) 操作序列 1. 登錄認(rèn)證成功或點(diǎn)擊頁(yè)首“首頁(yè)”,請(qǐng)求個(gè)人主頁(yè)模塊。 2. 瀏覽器請(qǐng)求服務(wù)器中 IndexAction 中的 home 方法; 3. IndexAction 創(chuàng)建 UserModel,調(diào)用其中 getUserBaseInfo 方法獲得用戶基本信息,傳至 view 中; 4. IndexAction 創(chuàng)建 BlogModel,調(diào)用其中 getFollowingBlogs 方法獲得用戶以及好友的最新微博動(dòng)態(tài),傳至 view 中; 5. 視圖將 數(shù)據(jù)裝填至個(gè)人主頁(yè)模板中并返回至瀏覽器 限制條件 1. 必須連接數(shù)據(jù)庫(kù),否則會(huì)出現(xiàn)無(wú)法連接數(shù)據(jù)庫(kù)錯(cuò)誤 2. 必須為本站 已登錄 用戶 接口 登陸認(rèn)證成功,或界面“首頁(yè)” 輸出 返回 用戶個(gè)人主頁(yè) 名稱、標(biāo)識(shí)符 系統(tǒng) 推薦 功能描述 向用戶推薦最熱微博、最熱話題、活躍用戶和被 關(guān)注 用戶排行 性能 當(dāng)用戶 訪問(wèn)推薦時(shí)等待頁(yè)面時(shí)間 5s 輸入 用戶基本信息: 無(wú) 操作序列 1. 瀏覽器請(qǐng)求服務(wù)器中 PublicAction 中的 remend 方法; 2. PublicAction 創(chuàng)建 UserModel,調(diào)用其中 getActiveUsers 方法獲得活躍用戶基本信息,傳至 view 中; 3. PublicAction 調(diào)用 UserModel 中 getTopFollowedUsers 方法獲得最熱被關(guān)注用戶的基本信息,傳至 view 中; 7 4. PublicAction 創(chuàng)建 BlogModel,調(diào)用其中 getHotBlogs 方法獲得回復(fù)等排名最前的最熱微博,傳至 view 中; 5. PulicAction 創(chuàng)建 TopicModel,調(diào)用其中 getHotTopics 方法獲得博文數(shù)最前的最熱話題,傳至 view 中; 6. 視圖將數(shù)據(jù)裝填至推薦模板中并返回至瀏覽器 限制條 件 1. 必須連接數(shù)據(jù)庫(kù),否則會(huì)出現(xiàn)無(wú)法連接數(shù)據(jù)庫(kù)錯(cuò)誤 接口 除登錄和注冊(cè)之外的所有界面右側(cè)。 輸出 返回 推薦部分 管理員用例 管理員用例圖如 圖 32 所示: 審核用戶授與權(quán)限新增話題修改話題查看系統(tǒng)參數(shù)微博設(shè)置積分設(shè)置管理積分日志審核博文防灌水設(shè)置系統(tǒng)設(shè)置 in c l u d e in c l u d e in c l u d e in c l u d e 管理積分 in c l u d e in c l u d e 管理用戶 in c l u d e in c l u d e 管理博文 in c l u d e 管理話題 in c l u d e in c l u d e 管理群組管理員 圖 32 管理員 用例圖 8 用例描述: 名稱、標(biāo)識(shí)符 微博設(shè)置功能 功能描述 管理員配置微博系統(tǒng)的相關(guān)信息,例如微博名稱、關(guān)閉用戶注冊(cè)等。 性能 信息處理 時(shí)間 5s 輸入 系統(tǒng)配置 信息 : 微博名稱 、 微博域名 、 微博關(guān)鍵字 、 微博描述 、 關(guān)閉用戶注 冊(cè) 、 過(guò)濾關(guān)鍵詞 、 禁止注冊(cè)用戶名 /主頁(yè)名 、 網(wǎng)站備案號(hào) 、微博版權(quán)信息 等。 操作序列 1. 客戶端請(qǐng)求服務(wù)器 SystemSetAction 的 getBlogSystemSet 方法; 1. SystemSetAction 創(chuàng)建 SystemProperty 對(duì)象,調(diào)getBlogSysProperties 獲取微博設(shè)置數(shù)據(jù),并傳至 view 中。 2. 服務(wù)器將微博設(shè)置界面返回至客戶端; 3. 管理員修改配置信息,并點(diǎn)擊提交按鈕,瀏覽器請(qǐng)SystemSetAction 中的 setBlogSysemSet 方法。 4. SystemSetAction 接受請(qǐng)求,創(chuàng) 建 SystemProperty 對(duì)象,對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),并調(diào)用 saveBlogSysProperties 方法保存信息。 5. 服務(wù)器將操作成功狀態(tài)返回至客戶端 限制條件 1. 必須連接數(shù)據(jù)庫(kù),否則會(huì)出現(xiàn)無(wú)法連接數(shù)據(jù)庫(kù)錯(cuò)誤 2. 必須為本站 已登錄管理員 接口 點(diǎn)擊管理員 系統(tǒng)設(shè)置 中“微博設(shè)置”,或提交之后返回。 輸出 返回 操作成功或失敗信息 非功能 需求 1. 可用性 微博系統(tǒng) 應(yīng)對(duì)所有使用用戶提供及時(shí)的服務(wù)。系統(tǒng)應(yīng)保證對(duì) 24 小時(shí)運(yùn)作的客服系統(tǒng)的服務(wù) ,系統(tǒng)維護(hù)時(shí)間應(yīng)計(jì)劃在服務(wù)的最低峰時(shí)間。 2. 響應(yīng)時(shí)間 進(jìn)行數(shù)據(jù)查詢時(shí),當(dāng)處于系統(tǒng)使用高峰期時(shí)應(yīng)保證系統(tǒng)具有對(duì) 95%的數(shù)據(jù)交互查詢 ?更新提供 3 秒或更短響應(yīng)時(shí)間的支持,當(dāng)處于系統(tǒng)使用低峰期時(shí)應(yīng)保證系統(tǒng)具有對(duì) 95%的數(shù)據(jù)交互查詢 ?更新提供 2 秒或更短響應(yīng)時(shí)間的支持。當(dāng)進(jìn)行數(shù)據(jù)添加、更新時(shí),系統(tǒng)內(nèi)部應(yīng)提供對(duì)請(qǐng)求處理的來(lái)源及響應(yīng)時(shí)間的監(jiān)控機(jī)制。系統(tǒng)響應(yīng)時(shí)間因不同外部數(shù)據(jù)源和使用系統(tǒng)的通訊和接口情況而有所差異。 3. 可靠性 微博系統(tǒng) 不應(yīng)在正常操作中丟失數(shù)據(jù),當(dāng)用戶正在使用系統(tǒng)時(shí) ,系統(tǒng)不應(yīng)癱瘓,應(yīng)對(duì)所有的使用人員提供每年 365 天 ,每天 24 小時(shí) ,每天 3 班的系統(tǒng)監(jiān)控支持 ,而每 月突發(fā)的宕機(jī)時(shí)間不超過(guò) 4 小時(shí) ? 4. 易于使用性 微博系統(tǒng) 應(yīng)有操作 ?故障排除手冊(cè)來(lái)幫助系統(tǒng)管理人員來(lái)快速解決系統(tǒng)問(wèn)題。系統(tǒng) ?管理 /操作界面應(yīng)易于使用 , 對(duì)操作人員的培訓(xùn)時(shí)間保持在較短的時(shí)間內(nèi)。 5. 安全性 微博系統(tǒng) 中提供普通用戶和管理員權(quán)限兩項(xiàng)安全性身份驗(yàn)證。其中,管理員9 可對(duì)普通用戶進(jìn)行授權(quán)操作,以便方便系統(tǒng)管理。 6. 備份和災(zāi)難的及時(shí)恢復(fù) 微博系統(tǒng) 應(yīng)每天對(duì)所有運(yùn)作相關(guān)的數(shù)據(jù)進(jìn)行備份,以及備份的 微博系統(tǒng) ,以防止運(yùn)行系統(tǒng)癱瘓時(shí)能及時(shí)使用備份數(shù)據(jù)庫(kù)重新提供系統(tǒng)的服務(wù)。 系統(tǒng)目標(biāo) 本 文 是針對(duì)目前國(guó)內(nèi)主 流微博產(chǎn)品所具備的主要特點(diǎn)和功能進(jìn)行設(shè)計(jì),具有對(duì)微博、話題、群組、好友等完整的 功能 , 應(yīng)具備如下 特點(diǎn): 1. 完備的系統(tǒng)功能 本系統(tǒng) 是一個(gè)功能完備的微博網(wǎng)站,可用于建站運(yùn)行,也可在此基礎(chǔ)上方便地進(jìn)行二次開發(fā)。 2. 靈活的系統(tǒng)設(shè)置 系統(tǒng)管理員可以根據(jù)需要,對(duì)于系統(tǒng)靈活地進(jìn)行各種配置,例如開閉用戶注冊(cè)、過(guò)渡關(guān)鍵詞、系統(tǒng)名稱等,方便建站。 3. 個(gè)性的個(gè)人管理 用戶不僅可以設(shè)置昵稱、性別、頭像等基本信息,而且可以設(shè)置個(gè)人首頁(yè)網(wǎng)址等個(gè)性化的信息。 根據(jù)本文應(yīng)具備的特點(diǎn),現(xiàn)提出 主要目標(biāo) 如下: 1. 實(shí)現(xiàn)基礎(chǔ)功能,便于二次開發(fā)。任何一款互聯(lián)網(wǎng) 產(chǎn)品都有特定應(yīng)用領(lǐng)域,特定用戶群體及其需求。而本系統(tǒng)的定位于實(shí)現(xiàn)目前多數(shù)微博系統(tǒng)所具備的基本功能,并使其框架結(jié)構(gòu)具備靈活、易用性、擴(kuò)展性等特點(diǎn),以便其它用戶在此基礎(chǔ)上針對(duì)具體應(yīng)用進(jìn)行二次開發(fā)。 2. 博文應(yīng)具備多媒體形式,含文字、圖片、表情等。微博的主要特點(diǎn)之一在于其具有“平民化”的特點(diǎn),因而博文需要承載豐富的內(nèi)容。這便要求對(duì)于博文的信息呈現(xiàn)具有多樣的形式。所以除了文字以外,還需要有圖片等多媒體呈現(xiàn)形式,和表情、分享等為滿足“娛樂(lè)化”的