Mimari
MimariCMS Bağımsızlığı

CMS Bağımsızlığı

Gato GraphQL'in dayandığı temel GraphQL sunucusu CMS'den bağımsızdır; bu sayede herhangi bir PHP CMS'i veya çerçevesiyle çalışabilir (yalnızca WordPress değil, aynı zamanda Laravel ve Symfony ile de).

CMS bağımsızlığını sağlamak amacıyla, CMS ile etkileşime girmesi gereken tüm işlevler 2 ayrı pakete bölünmüştür:

  • CMS'den bağımsız bir paket: tüm iş kodunu ve uygulayan CMS ile etkileşim için gerekli sözleşmeleri içerir (örneğin: posts)
  • CMS'e özgü bir paket: belirli bir CMS için sözleşmelerin uygulamasını içerir (örneğin: posts-wp, WordPress için sözleşmeleri uygular)

Bu sayede kodun büyük bölümü (yaklaşık %90) CMS'den bağımsız pakette yer alır. API'yi farklı bir CMS'e taşımak için (örneğin WordPress'ten Laravel'e), yalnızca CMS'e özgü paketin uygulanması gerekir (bu, toplam kodun yaklaşık %10'una karşılık gelir).

Yeniden uygulanması gereken kod miktarını en aza indirmek ve paketler arasındaki kod tekrarını önlemek, kodun paketlere nasıl bölüneceğini belirleyen temel ilkelerdir.

Next