Architektur
ArchitekturCMS-Unabhängigkeit

CMS-Unabhängigkeit

Der zugrundeliegende GraphQL-Server, auf dem Gato GraphQL basiert, ist CMS-unabhängig und kann daher mit jedem PHP-CMS oder Framework eingesetzt werden (nicht nur WordPress, sondern auch Laravel und Symfony).

Um diese CMS-Unabhängigkeit zu erreichen, werden alle Funktionen, die mit dem CMS interagieren müssen, in 2 separate Pakete aufgeteilt:

  • Ein CMS-unabhängiges Paket, das den gesamten Business-Code und die Verträge zur Interaktion mit dem jeweiligen CMS enthält (z. B.: posts)
  • Ein CMS-spezifisches Paket, das die Implementierung der Verträge für ein bestimmtes CMS enthält (z. B.: posts-wp, das die Verträge für WordPress implementiert)

Auf diese Weise liegt der Großteil des Codes (etwa 90 %) im CMS-unabhängigen Paket. Um die API auf ein anderes CMS zu portieren (z. B. von WordPress auf Laravel), muss lediglich das CMS-spezifische Paket implementiert werden (was etwa 10 % des Gesamtcodes ausmacht).

Den Umfang des neu zu implementierenden Codes zu minimieren und doppelten Code zwischen den Paketen zu vermeiden, sind die wichtigsten Leitlinien dafür, wie der Code auf Pakete aufgeteilt wird.

Next