三、 以視覺化軟體開發網站應用程式系統分析
3.3 伺服端網站應用程式架構
3.3.3 php.MVC架構
下圖為網站系統在伺服端執行時之流程:
View Controller
Model Resources
1. 使用者從瀏覽器觀看網頁後,點選連結或按鈕後送出 HTTP 請求,
此時在伺服器端由 ActionServlet 接受請求,並至 1-1 查看此請求之 URL 在 phpmvc-config.xml 定義為何,如果有需要驗證資料則進行 步驟 2 否則進行步驟 3
2. ActionServlet 將使用者傳過來的資料(如:輸入之帳號、密碼)封裝放 入 FormBean
3. 執行 Action
4. 需要使用者輸入之資料時則到 FormBean 取得 5. 呼叫相關 Model 的 Method,執行商業邏輯
6. 傳回執行完後之 TO,即執行完 Action 後要再將程式導向到何處 7. 根據執行狀況 return ActionForward 到 View 層,顯示成功、或錯誤
之畫面
圖 22 php.MVC Framework 運作流程
本開發系統在伺服端架構採用 JSP Model2 架構,使用 php.MVC[712]此 framework 為基礎,並加上自行開發之 driver 來建構伺服端程式的所有框架。
以下為 php.MVC 的主要功能與優點: 目錄下,我們可以將 php.MVC Library 安裝在/usr/local/lib 路徑對,其他的應 用程式可以自行安排安裝位置,而不受限制。
MVC Model 2 設計:php.MVC 實作 Model-View-Controller(MVC) Model 2 設計 樣式,此設計樣式可以讓應用程式之表現層(Presentation layer)跟商業邏輯 (Business logic)分離,設計者與程式設計師可以分別專注於各自專業的工作 上。
訊息資源:php.MVC 提供 PropertyMessageResources class,此功能可以控制、
置換文字訊息,提供多國語言化應用程式之用。
Struts:php.MVC 是根據 Jakarta Struts[ 13]的設計實作,Struts 已經被證明是可 靠的設計。
php.MVC 的基本架構與,Jakarta 的 Struts 類似,主要差別在於使用的語言,
Struts 以 Java 開發,主要搭配 JSP/Java Servlet 系統使用,而 php.MVC 模仿 Struts 之架構,以 php 實作出 MVC 這個設計樣式,以下分別說明 php.MVC 的各主要 元件:
1. Action Servlet
為 Controller 之主體,接收所有的 request,讀取 xml 格式之設定檔
後,決定是否要對表單(Form)作檢查(Validate),並將包裝好之表單物件 (Form Object)傳給 Action 物件供進一步之使用。
2. FormBean
表單元件,主要功能為包裝、驗證使用者使用 HTML 表單所傳過來 之值,並將值包裝進 FormBean,供 Action 使用,驗證如果發生錯誤,
則傳回 ActionError 給 ActionServlet 以進行錯誤畫面之處理。如果驗證 通過則傳回 NULL 給 Servlet。
3. Action
Action 實際與商業邏輯部份進行互動,並根據 Model 處理的結果,
決定使用者的下一個畫面(ActionForward)。
4. phpmvc-config.xml
此 XML 設定檔為,Controller 運作最重要的核心,所有 Action、
ActionForward、FormBean、Plugin、Datasources,皆在此設定檔作設定。
datasources ActionMapping Action +scope:String
圖 23 phpmvc-config.xml Class Diagram
5. Model
主要商業邏輯所在,實際與資料庫、檔案系統等各種系統資源作存 取或設定等動作。
6. View
負責網站應用程式之畫面呈現,主要由 Controller 控制,從 Action 傳至 ActionForward 物件執行。
php.MVC 提供的 MVC Framework 雖不如 Jakarta Struts 完整,但已足以用來 建構大型 php 網頁應用程式,加快開發速度,也可增加軟體可重用性。