PHP的MVC規範

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫。是所有面向對象程序設計語言都應該遵守的規範。

M(model):模型,數據處理(業務邏輯處理)單元。

V(view):視圖,結果展示單元,也是用戶看到的單元。

C(controller):控制器,整體流程調度的單元。

web中引入MVC設計思想是為了實現表現層與業務層的分離,MVC提供了視圖與模型分離的機制--控制器。一般把跳轉關係的管理、表單數據的封裝、國際化、驗證等任務交給控制器處理。

controller、view、model各層之間是平行的,是彼此獨立的組件,是相互協作的關係。

Advertisements

controller接受用戶的請求,完成視圖與模型的匹配,不負責處理業務信息,只是把用戶請求的消息傳遞給模型,告訴模型的做什麼,返回符合要求的視圖,起到控制業務流程的作用。一個視圖可以對應多個模型,一個模型也可以對應多個視圖。

model是MVC的核心,負責業務流程/狀態、業務規則、數據模型的制定。業務流程的處理對其他層是不可見的。model擁有最多的處理任務,其返回的數據是與格式無關的。這樣一個model就可以為多個視圖提供數據,提高了代碼利用率。

view是用戶看到並與之交互的界面。視圖向用戶顯示相關的數據,並能接收用戶的輸入數據,但是它並不進行任何實際的業務處理。視圖可以向模型查詢業務狀態,但不能改變模型。視圖還能接受模型發出的數據更新事件,從而對用戶界面進行同步更新。

Advertisements

有以下優點:

1.多個視圖對應一個模型。

2.模型返回的數據與顯示邏輯分離,模型數據可應用與任何顯示技術。

3.應用被分割成為三層,降低了各層之間的耦合,提供了應用的可擴展性。

4.控制層的概念也很有效,由於它把不同的模型和視圖組合在一起,完成不同的請求,因此,控制層可以說是包含了用戶請求許可權的概念。

5.MVC更符合軟體工程化管理的精神。不同的曾各司其職,每一層的組建具有相同的特徵,有利於通過工程化和工具化產生管理程序代碼。

Advertisements

你可能會喜歡