• 沒有找到結果。

三、 以視覺化軟體開發網站應用程式系統分析

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 網頁應用程式,加快開發速度,也可增加軟體可重用性。

相關文件