Cấu trúc dự án theme, plugin EzyPlatform
Back To BlogsXin chào tất cả các bạn, trong bài trước, Dũng đã hướng dẫn các bạn tạo dự án theme và plugin ezyplatform, trong bài này Dũng sẽ mô tả cấu trúc dự theme và plugin đến các bạn nhé.
Yêu cầu
Để có thể hiểu được bài này, bạn nên học và thực hành Hướng dẫn tạo dự án theme, plugin EzyPlatform tại đây nhé.
Danh sách các mô đun
Như các bạn có thể thể thấy, dự án personal của chúng ta được tạo có thể chứa các mô đun như:
- personal-admin-plugin
- personal-sdk
- personal-socket-app
- personal-socket-plugin
- personal-theme
- personal-web-plugin
Chúng ta sẽ tìm hiểu lần lượt các mô đun nhé.
Mô đun sdk
Đầu tiền là mô đun personal-sdk, Mô đun sẽ chứa các mã nguồn hay các công cụ dùng cho cho các mô đun khác, ví dụ bạn có thể khai báo một lớp PersonalConstants chứa các hàng số dùng chung.
Mô đun admin plugin
Tiếp theo là mô đun personal-admin-plugin, mô đun này cung cấp các controller trả về View (HTML) và API cho admin. Ngoài ra admin plugin cũng có tập tin menus.properties tập tin này định nghĩa ra các menu item được hiển thị trên sidebar của EzyPlatform. Có 4 khu vực để hiển thị menu:
- top
- components
- administrator
- extensions
Bạn có thể chọn một khu phù hợp với chức năng của dự án, thường thì bạn sẽ chọn vùng top.
Mô đun socket app
Tiếp theo là mô đun personal-socket-app, mô đun này cung cấp các API xử lý yêu cầu của người dùng gửi đến socket.
Mô đun socket plugin
Tiếp theo là mô đun personal-socket-plugin, mô đun này thông thường cung cấp việc xác thực người dùng hoặc một số scheduler chạy định kỳ để thông báo cho người dùng.
Mô đun theme
Tiếp theo là mô đun personal-theme, mô đun này cung cấp các controller trả về View và API, nhưng thường sẽ trả về View hơn cho client. Nó sẽ chứa các tập tin tĩnh, các Thymeleaf template và các tập tin messages.properties chứa đa ngôn ngữ.
Nếu bạn là lập trình viên chuyên front-end bạn có thể trỏ thư mục build đến thư mục static để tập tin bundle được build ra có thể được truy cập sau khi triển khai.
Mô đun web plugin
Tiếp theo là mô đun personal-web-plugin, mô đun này cũng cung cấp các controller trả về View và API. Cá nhân mình thường cài đặt controller trả về API tại đây. Ngoài ra mình cũng khai báo các controller trả về View nhưng chưa để annotation @Controller để sau đó theme sẽ thừa kế sau. Làm như vậy để theme sẽ tập trung vào các tập tin tĩnh và template hơn. Trong tương lai có thể có nhiều theme tái sử dụng được web plugin.
Khởi chạy chương trình
- Để chạy admin plugin bạn có thể chạy lớp
PersonalAdminPluginStartupTesttrong góiorg.youngmonkeys.personal.admin.testnằm trong thư mụcpersonal-admin-plugin/src/test/java. - Để chạy socket plugin và socket app bạn có thể chạy lớp
PersonalSocketAppStartupTesttrong góiorg.youngmonkeys.personal.socket.app.testnằm trong thư mụcpersonal-socket-app/src/test/java. Bạn sẽ không cần chạy socket plugin riêng vì socket app đã thêm socket plugin vào danh sách phụ thuộc rồi. - Để chạy theme và web plugin bạn có thể chạy lớp
PersonalThemeStartupTesttrong góiorg.youngmonkeys.personal.web.testnằm trong thư mụcpersonal-theme/src/test/java. Bạn sẽ không cần chạy web plugin riêng vì theme đã thêm web plugin vào danh sách phụ thuộc rồi.
Tổng kết
Như vậy chúng ta đã cùng nhau tìm hiểu cấu trúc một dự án theme, plugin ezyplatform. Trong bài sau mình sẽ hướng dẫn các bạn khởi tạo giao diện của một dự án blog đơn giản nhé.