Arquitectura
ArquitecturaIndependencia del CMS

Independencia del CMS

El servidor GraphQL subyacente en el que se basa Gato GraphQL es agnóstico respecto al CMS, por lo que puede funcionar con cualquier CMS o framework de PHP (no solo WordPress, sino también Laravel y Symfony).

Para lograr esta independencia del CMS, toda la funcionalidad que debe interactuar con el CMS se divide en 2 paquetes separados:

  • Un paquete independiente del CMS, que contiene todo el código de negocio y los contratos para interactuar con el CMS que lo implemente, sea cual sea (por ejemplo: posts)
  • Un paquete específico del CMS, que contiene la implementación de los contratos para un CMS concreto (por ejemplo: posts-wp, que implementa los contratos para WordPress)

De este modo, la mayor parte del código (alrededor del 90%) reside en el paquete independiente del CMS. Para portar la API a un CMS distinto (por ejemplo: de WordPress a Laravel), solo es necesario implementar el paquete específico del CMS (que representa cerca del 10% del código total).

Minimizar la cantidad de código que debe reimplementarse y evitar la duplicación de código entre paquetes son los principales criterios que determinan cómo se divide el código en paquetes.

Next