Tổng quan kiến trúc
Tổng hợp cấu trúc tối thiểu bạn cần biết trước khi xây dựng mô-đun, skin, layout, giao diện trên Zittme.
Quan hệ với Rhymix
Zittme là engine GPL v2 tách ra từ Rhymix 2.1.35. Từ góc độ phát triển bên thứ ba, điều quan trọng là khả năng tương thích.
- Namespace của lõi là
Zittme\.Rhymix\vẫn được giữ làm bí danh tương thích, nên mô-đun viết cho Rhymix gọiRhymix\Framework\...vẫn hoạt động như cũ. - Mã mới hãy viết theo
Zittme\. - Phần lớn mô-đun, skin, layout làm cho Rhymix đều hoạt động mà không cần sửa. Các tính năng riêng của Zittme (gói giao diện, trường lặp, hiển thị đáp ứng) được thiết kế để khi cài vào Rhymix chỉ bị bỏ qua chứ không gây lỗi.
Cấu trúc thư mục
| Đường dẫn | Nội dung |
|---|---|
common/framework/ | Các lớp framework lõi (Zittme\Framework\...) |
classes/ | Các lớp lõi kiểu cũ (Context, ModuleHandler, v.v.) |
modules/ | Mô-đun. Đơn vị cơ bản của tính năng |
layouts/, m.layouts/ | Layout (PC / chỉ di động) |
themes/ | Gói giao diện |
addons/ | Add-on (phần mở rộng nhẹ xen vào giữa quá trình xử lý yêu cầu) |
widgets/ | Widget |
files/ | Tệp tải lên, bộ nhớ đệm, cài đặt. Là dữ liệu của website nên không đưa vào bản phân phối |
Luồng yêu cầu
Mọi yêu cầu đều đi vào index.php và dùng hai giá trị để quyết định mã sẽ chạy.
- mid: tên thể hiện của mô-đun. "Một bảng tin, một trang" tạo trong sơ đồ website đều là một mid. Nó trở thành phần đầu tiên của địa chỉ (
/board,/manual). - act: tên action sẽ chạy (
dispBoardContent,procBoardInsertDocument). Chỉ những action được khai báo trongconf/module.xmlcủa mô-đun mới chạy được.
Tên action có quy tắc.
| Tiền tố | Ý nghĩa | Cách gọi |
|---|---|---|
disp | Vẽ màn hình | GET |
proc | Xử lý dữ liệu | POST (tự động kiểm tra token CSRF) |
getApi, v.v. | Trả về dữ liệu | Tùy mục đích |
Để có địa chỉ gọn như mid/document-no, mid/write, hãy khai báo route cho action. Nội dung này có trong tài liệu Xây dựng mô-đun.
Cơ sở dữ liệu
Không viết SQL trực tiếp. Query được khai báo bằng tệp XML (queries/*.xml) và chạy bằng executeQuery('module.query', $args). Bảng cũng vậy, nếu khai báo bằng XML (schemas/*.xml) thì lõi sẽ tạo khi cài mô-đun. Chi tiết xem Query XML.
Template
Màn hình được vẽ bằng tệp template (HTML). Cú pháp có hai thế hệ cùng tồn tại.
- v2 (khuyến nghị):
@version(2)ở dòng đầu tệp. Kiểu@if/@foreach/{{ }} - v1 (cũ): kiểu thuộc tính
cond="",loop="". Để tương thích với tài nguyên hiện có
Tài nguyên mới hãy làm bằng v2. Xem Cú pháp template v2.
Tóm tắt các cách mở rộng
| Điều muốn làm | Phương tiện | Tài liệu |
|---|---|---|
| Tính năng mới (gồm DB, màn hình quản trị) | Mô-đun | Xây dựng mô-đun |
| Diện mạo của mô-đun có sẵn | Skin mô-đun | Xây dựng skin và layout |
| Khung của toàn website | Layout | Xây dựng skin và layout |
| Bộ layout + skin | Gói giao diện | Tạo gói giao diện |
| Hành vi nhẹ xen vào mọi yêu cầu | Add-on | (dự kiến) |
| Mảnh nội dung cắm vào bất cứ đâu trong layout | Widget | (dự kiến) |