Migrare la tua applicazione da WordPress a un altro framework o CMS PHP
Lo schema GraphQL fornito da Gato GraphQL contiene campi per recuperare i dati di WordPress: articoli, utenti, commenti, tag, categorie, ecc.
Il codice nei resolver PHP che recupera i dati di WordPress dipende da WordPress; quel codice non può essere eseguito in un'applicazione non WordPress.
Tuttavia, Gato GraphQL implementa ciascuno di questi resolver tramite 2 pacchetti:
- Un pacchetto PHP "vanilla", contenente tutto il codice generico
- Un pacchetto specifico per WordPress, contenente le invocazioni effettive ai metodi di WordPress che soddisfano quel resolver
Ad esempio, in questa query GraphQL:
{
posts {
id
title
}
}...la logica per recuperare gli articoli è composta da:
- Il campo
Root.posts: risiede nel pacchetto genericoposts - La sua risoluzione per WordPress tramite il metodo
get_posts: risiede nel pacchetto specifico per WordPressposts-wp.
La ripartizione del codice tra i pacchetti non-WordPress/WordPress è di circa 80/20%, il che significa che l'80% del codice è riutilizzabile con un altro framework/CMS, e solo il 20% del codice dovrebbe essere reimplementato.
Inoltre, tutte le funzionalità di Gato GraphQL sono fornite tramite moduli, e i moduli possono essere abilitati/disabilitati a piacimento.

I Moduli sono una funzionalità implementata per scopi di sicurezza: se non hai bisogno di esporre i dati utente nella tua API pubblica, puoi disabilitare il modulo Users, e i campi corrispondenti (come Root.users) non verranno mai aggiunti allo schema.
I moduli sono mappati direttamente ai pacchetti PHP sottostanti. Pertanto, quando si esegue Gato GraphQL come applicazione autonoma, possiamo caricare selettivamente i moduli/pacchetti di cui abbiamo bisogno, e nessuno degli altri.
Ad esempio, se la tua applicazione mostra solo dati di articoli, categorie e tag, allora devono essere caricati solo i pacchetti posts-wp, categories-wp e tags-wp (insieme alle loro dipendenze).
Quindi, durante la migrazione da WordPress (ad esempio, verso Laravel o Symfony), solo questi 3 pacchetti specifici per WordPress dovrebbero essere reimplementati per il nuovo framework/CMS, e nient'altro.