Kiến trúc
Kiến trúcTính độc lập với CMS

Tính độc lập với CMS

Máy chủ GraphQL bên dưới mà Gato GraphQL dựa trên không phụ thuộc vào CMS, vì vậy nó có thể hoạt động với bất kỳ CMS hoặc framework PHP nào (không chỉ WordPress, mà còn cả Laravel và Symfony).

Để đạt được tính độc lập với CMS, tất cả các chức năng phải tương tác với CMS được chia thành 2 gói riêng biệt:

  • Một gói độc lập với CMS, chứa toàn bộ mã nghiệp vụ và các hợp đồng để tương tác với CMS được triển khai, dù đó là CMS nào (ví dụ: posts)
  • Một gói dành riêng cho CMS, chứa phần triển khai các hợp đồng cho một CMS cụ thể (ví dụ: posts-wp, triển khai các hợp đồng cho WordPress)

Nhờ đó, phần lớn mã nguồn (khoảng 90%) nằm trong gói độc lập với CMS. Để chuyển API sang một CMS khác (ví dụ: từ WordPress sang Laravel), chỉ cần triển khai gói dành riêng cho CMS đó (chiếm khoảng 10% tổng lượng mã).

Giảm thiểu lượng mã cần triển khai lại và tránh trùng lặp mã giữa các gói là những yếu tố chính quyết định cách phân chia mã thành các gói.

Next