Interagire con l'API GraphQL
Interagire con l'API GraphQLMigrare la tua applicazione da WordPress a un altro framework o CMS PHP

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:

  1. Un pacchetto PHP "vanilla", contenente tutto il codice generico
  2. 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:

  1. Il campo Root.posts: risiede nel pacchetto generico posts
  2. La sua risoluzione per WordPress tramite il metodo get_posts: risiede nel pacchetto specifico per WordPress posts-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.

Moduli dello schema
Moduli dello schema

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.