課程117:【專案實作】一、網站開發的基礎架構(Framework)
摘要:
在這個課程當中,我們著重在建立網站的基礎架構。這個架構包含了:開發規範,核心模組,共用檔案等。在課程最後,會練習以這個架構,製作出網站的首頁。下一個課程中,我們將開發帳號管理的子系統,更詳細介紹如何使用這個架構。
專案開發規範:
由於這個專案是由多人共同開發出來,為了日後能順利整合各開發者所開發出來的子系統,以及確保日後程式更新與維護的便利性,所以,訂定以下的規範,請各位開發者務必遵守:
決定核心模組:
在開發網站的初期,一般說來,未經過詳細的系統分析的過程,很難一次就決定核心模組有哪些。但是,如果,要經過漫長的系統分析的過程,再來開始決定核心模組,往往無法達到時間上的要求。所以,比較好的方式是,先就目前所知的部分,先行決定要開發哪些模組。等日後,對系統有更清楚的認識,以及在日後開發其他子系統時,發覺需要修正核心的部分時,再來修改核心。
不過,也不能隨便亂寫。最好要有個可以參考的基準。我們採用的基準就是將所有程式,分為以下三個層:
決定以這三個層作為開發基準之後,我們就容易決定要有哪些作為我們核心的模組。下表是目前所決定的模組。
| 類別名稱 | 說明 | 檔名 | 層 |
|---|---|---|---|
| DB | 負責存取資料庫的類別 | DB.php | Data |
| Page | 繼承 Smarty 類別,呈現頁面的類別,定義頁面的共同屬性及方法 | Page.php | Presentation |
| PublicPage | 繼承 Page 類別,負責呈現公共頁面 | PublicPage.php | Presentation |
| SysPage | 繼承 Page 類別,負責呈現系統管理頁面 | SysPage.php | Presentation |
上面的表格中,並沒有在核心模組中,定義有關邏輯層的類別。這是因為各子系統除了在存取資料庫時,具有共同的功能需求之外,其他部分,到目前為止,還沒有發現需要在核心中,另行撰寫一個父類別來定義共同的屬性及功能。何況,因為所有子系統的類別均需繼承 DB 這個父類別。如果,真有需要的話,可以視情況需要,在 DB 父類別中,再來定義額外的屬性及方法。
設定檔:
設定檔共有兩類,以下表說明:
| 種類 | 說明 |
|---|---|
| 網站 PHP 的設定檔 | 在 www/網站根目錄底下有一個 config.php ,負責設定路徑以及資料庫等參數。 |
| 樣版的設定檔 | 在 config/底下的各設定檔,每一子系統擁有一個設定檔,負責設定樣版所使用的變數。 |
Ant Build.xml:
一個專案主檔,負責配置檔案到遠端伺服器。另一個資料庫檔,負責設定資料庫。
開發流程:
子系統開發流程 |
網頁開發流程 |
![]() |
![]() |