Back to Main Site

Tổng quan về kiến ​​trúc PolyCMS

Last updated on Jun 24, 2026 01:42

PolyCMS được thiết kế như một Hệ thống quản lý nội dung mô-đun có khả năng mở rộng cao được xây dựng trên Laravel 12Vue 3. Nó thu hẹp khoảng cách giữa các nền tảng CMS nguyên khối truyền thống (như WordPress) và các giải pháp Headless hiện đại bằng cách cung cấp kiến ​​trúc Hybrid Open Core.

1. Ngăn xếp cấp cao

Nền tảng phụ trợ: PHP 8.3+, Laravel 12, PostgreSQL (Chính) / MySQL.

** SPA quản trị giao diện người dùng: ** TypeScript, Vue 3 (API sáng tác), Vite 7, TailwindCSS 3.2, Pinia.

Lớp API: API RESTful (/api/v1) thông qua Sanctum và điểm cuối GraphQL thông qua Nuwave/Lighthouse.

Trình chỉnh sửa: Trình chỉnh sửa khối dựa trên TipTap (bộ lưu trữ JSON với kết xuất HTML phía máy chủ).

2. Tách thư mục & lớp

PolyCMS thực thi sự phân tách nghiêm ngặt các mối quan tâm, chuyển từ "bộ điều khiển chất béo" sang kiến ​​trúc hướng tới Dịch vụ và Hành động mạnh mẽ.

app/
├── Actions/        # Single-responsibility execution classes (e.g., CreatePost, ProcessRefund)
├── GraphQL/        # Schema-first resolvers, Queries, and Mutations
├── Http/
│   ├── Api/V1/     # REST Controllers handling HTTP Request/Response cycles
│   └── Frontend/   # Controllers for standard Blade template rendering
├── Models/         # Eloquent ORM definitions
├── Services/       # Core Domain logic (OrderManager, HookManager, MediaService)
└── Providers/      # Core bootstrapping

3. Công cụ mở rộng cốt lõi

Sức mạnh của PolyCMS nằm ở khả năng mở rộng mà không làm thay đổi cơ sở mã lõi.

A. Hệ thống Hook & Filter (HookManager)

Lấy cảm hứng từ WordPress nhưng được triển khai bằng PHP hiện đại, mặt tiền Hook cho phép các mô-đun chặn việc thực thi thông qua Actions (gọi lại void) và Filters (bộ biến đổi giá trị).

Hành động: Ví dụ: Hook::addAction('order.refund.succeeded', [RefundLog::class, 'handle'])

Bộ lọc: Ví dụ: Hook::addFilter('content.render.html', fn($html) => clean($html))

B. Kiến trúc mô hình kép: Native vs Sandbox

PolyCMS tách biệt rủi ro bằng cách phân loại các mô-đun thành hai chế độ hoạt động được xác định trong module.json:

  • Mô-đun gốc đáng tin cậy:

Có toàn quyền truy cập vào lõi, hệ thống tệp và cơ sở dữ liệu PHP. Được khởi động tự nhiên thông qua Nhà cung cấp dịch vụ. Sử dụng những thứ này để tối ưu hóa SEO sâu, lưu vào bộ nhớ đệm hoặc ghi đè lõi.

  • Ứng dụng từ xa Sandbox:

Thực hiện ngoài băng tần với các chính sách không tin cậy. Họ tương tác hoàn toàn thông qua API REST/GraphQL thông qua Mã thông báo ứng dụng Sanctum được quản trị viên phê duyệt. Sử dụng những thứ này để đồng bộ hóa CRM, tích hợp Mailchimp hoặc xử lý AI.

C. Công cụ đa chủ đề

Không giống như các ứng dụng Laravel tiêu chuẩn, PolyCMS hỗ trợ Kích hoạt chủ đề đồng thời:

Chủ đề chính: Cung cấp bố cục app.blade.php toàn cầu và nội dung cơ sở.

Chủ đề phụ: Cung cấp các mẫu khối chuyên dụng (ví dụ: mẫu trang đích) có thể được gán cho Bài đăng hoặc Sản phẩm riêng lẻ, ghi đè Chủ đề chính cục bộ trong khi kế thừa CSS toàn cầu.

##4. Admin SPA Quản lý nhà nước

Bảng quản trị PolyCMS là một Ứng dụng một trang (SPA). Luồng dữ liệu tuân theo một mẫu nghiêm ngặt:

Định tuyến: vue-router chặn URL và tải thành phần Chế độ xem cụ thể.

Trạng thái: Trạng thái giao diện người dùng toàn cầu (Chế độ tối, Hộp thoại hoạt động, Thông báo) do các cửa hàng Pinia quản lý.

Giao tiếp API: Các thành phần sử dụng thiết bị chặn Axios để tự động tiêm mã thông báo Sanctum Bearer.

Xác thực: Thành phần kết hợp xác thực tập trung (useValidation) hỗ trợ các thành phần Biểu mẫu tiêu chuẩn (FormField, FormInput) với ánh xạ lỗi máy khách/máy chủ động.

Các bước tiếp theo

Để bắt đầu mở rộng lõi, hãy xem lại Vòng đời phát triển mô-đun hoặc khám phá Tham khảo về móc & bộ lọc để xem các điểm mở rộng có sẵn.