Migrasi aplikasi Anda dari WordPress ke framework PHP atau CMS lain
Skema GraphQL yang disediakan oleh Gato GraphQL berisi field untuk mengambil data WordPress: post, pengguna, komentar, tag, kategori, dan lain-lain.
Kode dalam resolver PHP yang mengambil data WordPress bergantung pada WordPress; kode tersebut tidak dapat berjalan pada aplikasi non-WordPress.
Namun, Gato GraphQL mengimplementasikan setiap resolver ini melalui 2 paket:
- Satu paket PHP "vanilla", yang berisi semua kode generik
- Satu paket khusus WordPress, yang berisi pemanggilan aktual ke metode WordPress yang memenuhi resolver tersebut
Misalnya, dalam query GraphQL ini:
{
posts {
id
title
}
}...logika untuk mengambil post terdiri dari:
- Field
Root.posts: Berada di paket generikposts - Resolusinya untuk WordPress melalui metode
get_posts: Berada di paket khusus WordPressposts-wp.
Pembagian kode antara paket non-WordPress/WordPress adalah sekitar 80/20%, artinya 80% kode dapat digunakan kembali dengan framework/CMS lain, dan hanya 20% kode yang perlu diimplementasikan ulang.
Selain itu, semua fungsionalitas di Gato GraphQL dikirimkan melalui modul, dan modul dapat diaktifkan/dinonaktifkan sesuai kebutuhan.

Modul adalah fitur yang diimplementasikan untuk tujuan keamanan: Jika Anda tidak perlu mengekspos data pengguna di API publik Anda, maka Anda dapat menonaktifkan modul Users, dan field yang terkait (seperti Root.users) tidak akan pernah ditambahkan ke skema.
Modul dipetakan langsung ke paket PHP yang mendasarinya. Oleh karena itu, saat menjalankan Gato GraphQL sebagai aplikasi mandiri, kita dapat memuat secara selektif modul/paket yang kita butuhkan, dan tidak memuat yang lainnya.
Misalnya, jika aplikasi Anda hanya menampilkan data untuk post, kategori, dan tag, maka hanya paket posts-wp, categories-wp, dan tags-wp (beserta dependensinya) yang perlu dimuat.
Kemudian, saat bermigrasi dari WordPress (misalnya, ke Laravel, atau Symfony), hanya 3 paket khusus WordPress tersebut yang perlu diimplementasikan ulang untuk framework/CMS baru, dan tidak ada yang lainnya.