Architektura
ArchitekturaNiezależność od CMS

Niezależność od CMS

Serwer GraphQL, na którym oparty jest Gato GraphQL, jest niezależny od CMS, dzięki czemu może współpracować z dowolnym CMS lub frameworkiem PHP (nie tylko WordPress, ale także Laravel i Symfony).

Aby osiągnąć tę niezależność od CMS, cała funkcjonalność wymagająca interakcji z CMS jest podzielona na 2 oddzielne pakiety:

  • Pakiet niezależny od CMS, zawierający cały kod biznesowy i kontrakty do interakcji z implementującym CMS, niezależnie od tego, który to jest (np.: posts)
  • Pakiet specyficzny dla CMS, zawierający implementację kontraktów dla konkretnego CMS (np.: posts-wp, implementujący kontrakty dla WordPress)

W ten sposób większość kodu (około 90%) znajduje się w pakiecie niezależnym od CMS. Aby przenieść API do innego CMS (np.: z WordPress do Laravel), wystarczy zaimplementować tylko pakiet specyficzny dla CMS (stanowiący około 10% całego kodu).

Minimalizowanie ilości kodu wymagającego ponownej implementacji oraz unikanie duplikacji kodu między pakietami to główne czynniki określające sposób podziału kodu na pakiety.

Next