基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)及其運行方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)的技術(shù)領(lǐng)域,具體說是一種基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)及其運行方法。
【背景技術(shù)】
[0002]在PHP開發(fā)中,通過提供一個開發(fā)Web程序的基本架構(gòu),PHP開發(fā)框架把Web程序開發(fā)擺到了流水線上。開發(fā)框架有助于促進(jìn)快速軟件開發(fā)(RAD),這節(jié)約了開發(fā)者的時間,有助于創(chuàng)建更為穩(wěn)定的程序,并減少開發(fā)者的重復(fù)編寫代碼的勞動。還通過確保正確的數(shù)據(jù)庫操作以及只在表現(xiàn)層編程的方式幫助初學(xué)者創(chuàng)建穩(wěn)定的程序,讓開發(fā)者專注于功能的實現(xiàn)上。
[0003]為應(yīng)對產(chǎn)品線前臺以及運營工作中日益復(fù)雜龐大、多變的運營需求,向后臺開發(fā)者提供高效快捷的開發(fā)框架需遵循以下要求:
1、代碼穩(wěn)定性,由于PHP是一門很寬松的語言,因此確保不在代碼中遺留任何安全漏洞是重中之重一一即使程序看起來工作正常,穩(wěn)定性是開發(fā)者使用mvc框架的重要原因,可以限制錯誤的產(chǎn)生。
[0004]2、開發(fā)敏捷性,開發(fā)者在面對前臺多變的需求時要能快速響應(yīng),這要求開發(fā)者能最大程度的進(jìn)行敏捷開發(fā),同時還要保證代碼的高質(zhì)量、清晰并可復(fù)用。
[0005]
【發(fā)明內(nèi)容】
本發(fā)明要解決的技術(shù)問題是提供一種基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)及其運行方法。
[0006]本發(fā)明為解決公知技術(shù)中存在的技術(shù)問題所采取的技術(shù)方案是:
本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),將一個應(yīng)用程序的輸入、處理和輸出進(jìn)行分離,分為模型層、視圖層和控制層;其中模型層,用于封裝業(yè)務(wù)的邏輯,接受視圖層請求的數(shù)據(jù),并返回最終的處理結(jié)果給控制層,用于視圖進(jìn)行顯示,包含了所有的業(yè)務(wù)邏輯;視圖層,與用戶實現(xiàn)交互的界面,同時實現(xiàn)數(shù)據(jù)的輸入和輸出;控制層,控制整個業(yè)務(wù)流程,實現(xiàn)視圖層與模型層的協(xié)同工作。
[0007]本發(fā)明還可以采用以下技術(shù)措施:
上述視圖層中包括HTML界面、視圖上數(shù)據(jù)的采集和處理以及用戶的請求。
[0008]所述的控制層為分發(fā)器,選擇模型層和視圖層完成用戶的請求。
[0009]所述的模型層中只加載滿足系統(tǒng)運作的最小的類庫,其他類庫和輔助函數(shù)選擇性加載。
[0010]所述的視圖層中展現(xiàn)給用戶的視圖為網(wǎng)頁、部分頁面、RSS頁面中的任一種。
[0011]在加載應(yīng)用程序的控制層之前,對HTTP請求以及任何用戶提交的數(shù)據(jù)進(jìn)行安全檢查和權(quán)限校驗。
[0012]本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)的運行方法,包括以下步驟:
I)用戶發(fā)出訪問的請求,Web服務(wù)器通過執(zhí)行入口腳本處理此請求,入口腳本創(chuàng)建了一個應(yīng)用實例并執(zhí)行;
2)應(yīng)用從應(yīng)用組件中獲得了用戶請求的詳細(xì)信息,進(jìn)行校驗和權(quán)限驗證,并在組件的幫助下決定請求對應(yīng)的控制層的控制器和動作;
3)應(yīng)用創(chuàng)建請求控制器的實例以處理用戶請求,控制器決定動作指向控制器類中的方法,然后創(chuàng)建并持行了與動作關(guān)聯(lián)的過濾器,如果過濾器允許,動作將被執(zhí)行;
4)動作從模型層的模型中獲取數(shù)據(jù),通過模型渲染視圖到視圖層;
5)視圖讀取并模型的屬性,執(zhí)行插件后將渲染結(jié)果插入一個布局,動作完成視圖渲染并將其呈現(xiàn)給用戶。
[0013]本發(fā)明具有的優(yōu)點和積極效果是:
本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)及其運行方法中,將一個應(yīng)用程序的輸入、處理和輸出進(jìn)行分離,分為模型層、視圖層和控制層,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)具有安全、穩(wěn)定、高效、易用、可擴展等特性,支持海量訪問的系統(tǒng)穩(wěn)定和開發(fā)的靈活性,部署簡單快速??蚣茏裱璕EST思想,對外通過HTTP協(xié)議開放URL映射交互接口,降低開發(fā)的復(fù)雜性,便于分工開發(fā),提高系統(tǒng)的可伸縮性?;诮y(tǒng)計認(rèn)證協(xié)議,支持大數(shù)據(jù)壓縮傳遞,保證了框架系統(tǒng)的快速響應(yīng)和??蚣軓V泛兼容標(biāo)準(zhǔn)主機上的各種PHP版本和配置,部署便捷??蚣苄∏?,易于學(xué)習(xí),減小了開發(fā)難度,保證了開發(fā)的快速和高效;框架支持跨平臺,使得系統(tǒng)交互不受開發(fā)語言的限制,更好的支持web和移動設(shè)備等運行環(huán)境。
【附圖說明】
[0014]圖1是本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)的示意圖。
【具體實施方式】
[0015]以下通過具體實施例對本發(fā)明進(jìn)行詳細(xì)說明。
[0016]如圖1所示,本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),將一個應(yīng)用程序的輸入、處理和輸出進(jìn)行分離,分為模型層、視圖層和控制層;其中模型層,用于封裝業(yè)務(wù)的邏輯,接受視圖層請求的數(shù)據(jù),并返回最終的處理結(jié)果給控制層,用于視圖進(jìn)行顯示,包含了所有的業(yè)務(wù)邏輯;視圖層,與用戶實現(xiàn)交互的界面,同時實現(xiàn)數(shù)據(jù)的輸入和輸出;控制層,控制整個業(yè)務(wù)流程,實現(xiàn)視圖層與模型層的協(xié)同工作。
[0017]在本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)的運行方法中,模型層、視圖層和控制層執(zhí)行以下步驟:
1.用戶發(fā)出訪問的請求,Web服務(wù)器通過執(zhí)行入口腳本index,php處理此請求,入口腳本創(chuàng)建了一個應(yīng)用實例并執(zhí)行;
2.應(yīng)用從應(yīng)用組件components中獲得了用戶請求的詳細(xì)信息,進(jìn)行校驗和權(quán)限驗證,并在組件的幫助下決定請求對應(yīng)的控制層的控制器和動作;
3.應(yīng)用創(chuàng)建了一個請求控制器的實例以進(jìn)一步處理用戶請求,控制器決定了動作指向控制器類中的方法,然后創(chuàng)建并持行了與動作關(guān)聯(lián)的過濾器,例如訪問控制,基準(zhǔn)測試,如果過濾器允許,動作將被執(zhí)行; 4.動作從模型層的模型中獲取數(shù)據(jù),通過模型渲染一個視圖到視圖層;
5.視圖讀取并模型的屬性,執(zhí)行一些小插件后將清染結(jié)果插入一個布局,動作完成視圖渲染并將其呈現(xiàn)給用戶。
[0018]上述視圖層中包括HTML界面、視圖上數(shù)據(jù)的采集和處理以及用戶的請求。
[0019]控制層為分發(fā)器,選擇模型層和視圖層完成用戶的請求??刂茖邮悄P蛯印⒁晥D層以及其他任何處理HTTP請求所必須的資源之間的中介。
[0020]模型層中只加載滿足系統(tǒng)運作的最小的類庫,其他類庫和輔助函數(shù)選擇性加載。開發(fā)者可根據(jù)需求隨時動態(tài)請求加載其他類庫,同時支持自定義類庫和輔助函數(shù)進(jìn)行擴展,框架系統(tǒng)組件間的依賴程度低,松耦合。
[0021]視圖層中展現(xiàn)給用戶的視圖為網(wǎng)頁、部分頁面、RSS頁面中的任一種。
[0022]在加載應(yīng)用程序的控制層之前,對HTTP請求以及任何用戶提交的數(shù)據(jù)進(jìn)行安全檢查和權(quán)限校驗??蚣軐ν馓峁┪ㄒ坏那岸丝刂破?,Router檢查HTTP請求,以確定如何處理該請求,在加載應(yīng)用程序控制器之前,對HTTP請求以及任何用戶提交的數(shù)據(jù)進(jìn)行安全檢查和權(quán)限校驗,支持大數(shù)據(jù)量壓縮傳遞,減小HTTP請求的響應(yīng)時間,保證了框架的安全性和穩(wěn)定性。
[0023]本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),支持包括MySQL在內(nèi)的大多數(shù)常見數(shù)據(jù)庫、mongodb,并提供封裝公用類庫,方便開發(fā)者隨時調(diào)用;框架支持ice中間件,實現(xiàn)框架跨平臺、多語言、多線程,提高系統(tǒng)可維護性和可擴展性;支持HTML5和CSS3標(biāo)準(zhǔn)的移動應(yīng)用框架,兼容多瀏覽器、支持web和移動設(shè)備等運行環(huán)境;框架對控制器和交互接口進(jìn)行統(tǒng)一安全認(rèn)證,降低了開發(fā)的復(fù)雜度,可管理接口的訪問頻度,保證接口的獨立性的同時又能保證安全性;框架支持安全協(xié)議保證、日志監(jiān)控、接口調(diào)用監(jiān)控,輸出數(shù)據(jù)格式支持多協(xié)議多格式(XML/JS0N)。
[0024]平臺部署支持多服務(wù)器負(fù)載均衡,支持高速分布式緩存服務(wù),支持Token驗證,支持成熟的開源框架,支持跨平臺,多線程。通過框架提供的日常開發(fā)的大量類庫和簡單接口和邏輯結(jié)構(gòu),能夠快速開發(fā),減少代碼量,更加專注于創(chuàng)造性的工作。
[0025]以上所述,僅是本發(fā)明的較佳實施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實施例公開如上,然而,并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)然會利用揭示的技術(shù)內(nèi)容作出些許更動或修飾,成為等同變化的等效實施例,但凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
【主權(quán)項】
1.一種基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),其特征在于:將一個應(yīng)用程序的輸入、處理和輸出進(jìn)行分離,分為模型層、視圖層和控制層;其中模型層,用于封裝業(yè)務(wù)的邏輯,接受視圖層請求的數(shù)據(jù),并返回最終的處理結(jié)果給控制層,用于視圖進(jìn)行顯示,包含了所有的業(yè)務(wù)邏輯;視圖層,與用戶實現(xiàn)交互的界面,同時實現(xiàn)數(shù)據(jù)的輸入和輸出;控制層,控制整個業(yè)務(wù)流程,實現(xiàn)視圖層與模型層的協(xié)同工作。2.根據(jù)權(quán)利要求1所述的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),其特征在于:上述視圖層中包括HTML界面、視圖上數(shù)據(jù)的采集和處理以及用戶的請求。3.根據(jù)權(quán)利要求1或2所述的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),其特征在于:控制層為分發(fā)器,選擇模型層和視圖層完成用戶的請求。4.根據(jù)權(quán)利要求3所述的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),其特征在于:模型層中只加載滿足系統(tǒng)運作的最小的類庫,其他類庫和輔助函數(shù)選擇性加載。5.根據(jù)權(quán)利要求4所述的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),其特征在于:視圖層中展現(xiàn)給用戶的視圖為網(wǎng)頁、部分頁面、RSS頁面中的任一種。6.根據(jù)權(quán)利要求5所述的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu),其特征在于:在加載應(yīng)用程序的控制層之前,對HTTP請求以及任何用戶提交的數(shù)據(jù)進(jìn)行安全檢查和權(quán)限校驗。7.—種基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)的運行方法,包括以下步驟: 1)用戶發(fā)出訪問的請求,Web服務(wù)器通過執(zhí)行入口腳本處理此請求,入口腳本創(chuàng)建了一個應(yīng)用實例并執(zhí)行; 2)應(yīng)用從應(yīng)用組件中獲得了用戶請求的詳細(xì)信息,進(jìn)行校驗和權(quán)限驗證,并在組件的幫助下決定請求對應(yīng)的控制層的控制器和動作; 3)應(yīng)用創(chuàng)建請求控制器的實例以處理用戶請求,控制器決定動作指向控制器類中的方法,然后創(chuàng)建并持行了與動作關(guān)聯(lián)的過濾器,如果過濾器允許,動作將被執(zhí)行; 4)動作從模型層的模型中獲取數(shù)據(jù),通過模型渲染視圖到視圖層; 5)視圖讀取并模型的屬性,執(zhí)行插件后將渲染結(jié)果插入一個布局,動作完成視圖渲染并將其呈現(xiàn)給用戶。
【專利摘要】一種基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)及其運行方法中,將一個應(yīng)用程序的輸入、處理和輸出進(jìn)行分離,分為模型層、視圖層和控制層,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。本發(fā)明的基于統(tǒng)一認(rèn)證協(xié)議的mvc框架結(jié)構(gòu)具有安全、穩(wěn)定、高效、易用、可擴展等特性,支持海量訪問的系統(tǒng)穩(wěn)定和開發(fā)的靈活性,部署簡單快速??蚣茏裱璕EST思想,對外通過HTTP協(xié)議開放URL映射交互接口,降低開發(fā)的復(fù)雜性,便于分工開發(fā),提高了系統(tǒng)的可伸縮性。
【IPC分類】G06F21/31, G06F9/44
【公開號】CN105549972
【申請?zhí)枴緾N201510917589
【發(fā)明人】王焱, 楊偉鋒
【申請人】天津海量信息技術(shù)有限公司
【公開日】2016年5月4日
【申請日】2015年12月10日