架構概覽
整理在 Zittme 上製作模組・面板・版面・佈景主題之前,需要了解的最基本結構。
與 Rhymix 的關係
Zittme 是從 Rhymix 2.1.35 分支出來的 GPL v2 引擎。從第三方製作的角度來看,重要的是相容性。
- 核心命名空間為
Zittme\。Rhymix\作為相容別名保留,因此既有的 Rhymix 模組呼叫Rhymix\Framework\...也能照常運作。 - 新撰寫的程式碼請以
Zittme\為準。 - 為 Rhymix 製作的模組・面板・版面大多不需修改即可運作。Zittme 獨有的功能(佈景主題套件、重複欄位、響應式顯示)設計為安裝到 Rhymix 時只會被忽略,不會產生錯誤。
資料夾結構
| 路徑 | 內容 |
|---|---|
common/framework/ | 核心框架類別(Zittme\Framework\...) |
classes/ | 舊版核心類別(Context、ModuleHandler 等) |
modules/ | 模組。功能的基本單位 |
layouts/、m.layouts/ | 版面(PC / 行動版專用) |
themes/ | 佈景主題套件 |
addons/ | 附加元件(在請求處理過程中介入的輕量擴充) |
widgets/ | 小工具 |
files/ | 上傳檔案・快取・設定。屬於網站資料,不包含在發行版中 |
請求流程
所有請求都從 index.php 進入,並以兩個值決定要執行的程式碼。
- mid:模組實例名稱。在網站地圖中建立的「一個討論區、一個頁面」各自是一個 mid。它會成為網址的第一段(
/board、/manual)。 - act:要執行的動作名稱(
dispBoardContent、procBoardInsertDocument)。只有在模組的conf/module.xml中宣告的動作才會執行。
動作名稱有規則。
| 前綴 | 意義 | 呼叫方式 |
|---|---|---|
disp | 繪製畫面 | GET |
proc | 處理資料 | POST(自動檢查 CSRF 權杖) |
getApi 等 | 回傳資料 | 依用途而定 |
若要讓網址像 mid/document-number、mid/write 這樣簡潔,請為動作宣告路由。這部分在模組製作文件中說明。
資料庫
不直接撰寫 SQL。查詢以 XML 檔案(queries/*.xml)宣告,並以 executeQuery('module.query', $args) 執行。資料表也以 XML(schemas/*.xml)宣告,安裝模組時核心會自動建立。詳細內容請參閱查詢 XML。
範本
畫面以範本檔案(HTML)繪製。語法有兩個世代並存。
- v2(建議):檔案第一行為
@version(2)。@if/@foreach/{{ }}風格 - v1(舊版):
cond=""、loop=""屬性風格。用於相容既有資源
新資源請以 v2 製作。請參考範本語法 v2。