Uygulamanızı WordPress'ten başka bir PHP framework'üne veya CMS'e taşıma
Gato GraphQL tarafından sağlanan GraphQL şeması, WordPress verilerini getirmek için alanlar içerir: gönderiler, kullanıcılar, yorumlar, etiketler, kategoriler vb.
PHP resolver'larındaki WordPress verilerini getiren kod WordPress'e bağımlıdır; bu kod WordPress dışı bir uygulamada çalıştırılamaz.
Ancak Gato GraphQL, bu resolver'ların her birini 2 paket aracılığıyla uygular:
- Tüm genel kodu içeren "vanilla" PHP paketi
- O resolver'ı karşılayan WordPress metodlarına yapılan gerçek çağrıları içeren WordPress'e özgü paket
Örneğin, şu GraphQL queries'inde:
{
posts {
id
title
}
}...gönderileri getirme mantığı şunlardan oluşur:
Root.postsalanı: Genelpostspaketi içinde yer alırget_postsmetodu aracılığıyla WordPress için çözümlenmesi: WordPress'e özgüposts-wppaketi içinde yer alır.
WordPress dışı/WordPress paketleri arasındaki kod bölünmesi yaklaşık %80/%20 oranındadır; bu da kodun %80'inin başka bir framework/CMS ile yeniden kullanılabilir olduğu ve yalnızca kodun %20'sinin yeniden uygulanması gerekeceği anlamına gelir.
Üstelik, Gato GraphQL'deki tüm işlevsellik modüller aracılığıyla sunulur ve modüller isteğe göre etkinleştirilebilir/devre dışı bırakılabilir.

Modüller, güvenlik amacıyla uygulanan bir özelliktir: Genel API'nızda kullanıcı verilerini ifşa etmenize gerek yoksa, Users modülünü devre dışı bırakabilirsiniz; bu sayede ilgili alanlar (örneğin Root.users) şemaya hiçbir zaman eklenmez.
Modüller doğrudan temel PHP paketlerine eşlenir. Bu nedenle, Gato GraphQL'i bağımsız bir uygulama olarak çalıştırırken ihtiyacımız olan modülleri/paketleri seçici biçimde yükleyebilir, diğerlerini yüklemeyebiliriz.
Örneğin, uygulamanız yalnızca gönderiler, kategoriler ve etiketler için veri yazdırıyorsa, yalnızca posts-wp, categories-wp ve tags-wp paketlerinin (bağımlılıklarıyla birlikte) yüklenmesi gerekir.
Ardından, WordPress'ten uzaklaşırken (örneğin Laravel veya Symfony'ye geçerken) yalnızca bu 3 WordPress'e özgü paketin yeni framework/CMS için yeniden uygulanması gerekecek, başka hiçbir şey gerekmeyecektir.