Arquitetura
ArquiteturaIndependência do CMS

Independência do CMS

O servidor GraphQL subjacente no qual o Gato GraphQL é baseado é independente do CMS, podendo funcionar com qualquer CMS ou framework PHP (não apenas WordPress, mas também Laravel e Symfony).

Para alcançar essa independência do CMS, toda a funcionalidade que precisa interagir com o CMS é dividida em 2 pacotes distintos:

  • Um pacote independente do CMS, contendo todo o código de negócio e os contratos para interagir com o CMS que o implementa, seja ele qual for (ex.: posts)
  • Um pacote específico para o CMS, contendo a implementação dos contratos para um determinado CMS (ex.: posts-wp, implementando os contratos para WordPress)

Dessa forma, a maior parte do código (cerca de 90%) reside no pacote independente do CMS. Para portar a API para um CMS diferente (ex.: de WordPress para Laravel), apenas o pacote específico do CMS precisa ser implementado (representando cerca de 10% do código total).

Minimizar a quantidade de código que precisa ser reimplementada e evitar duplicação de código entre os pacotes são os principais critérios que definem como o código é dividido em pacotes.

Next