Estensione

Schema Functions

Esponi le funzionalità del linguaggio di programmazione PHP tramite campi e direttive GraphQL.

Logo
Target Image

Click to watch tutorial video - 07:54

Lo schema GraphQL è arricchito con campi e direttive che espongono le funzionalità del linguaggio di programmazione PHP.

Campi di funzione

I campi di funzione sono campi globali, quindi vengono aggiunti a ogni singolo tipo nello schema GraphQL: in QueryRoot, ma anche in Post, User, ecc.

I campi di funzione sono utili per manipolare i dati una volta recuperati, consentendoci di trasformare il valore di un campo nel modo richiesto e offrendoci potenti capacità di importazione/esportazione dei dati.

Ad esempio, pur avendo un campo Post.hasComments, potremmo aver bisogno del valore opposto. Invece di creare un nuovo campo Post.notHasComments (che richiederebbe di modificare il codice PHP), possiamo usare la funzionalità Field to Input per passare il valore di hasComments a un campo not, calcolando così il nuovo valore interamente all'interno della query GraphQL:

query {
  posts {
    id
    hasComments
    notHasComments: _not(value: $__hasComments)
  }
}

Direttive di funzione

Lo schema GraphQL è arricchito con direttive che espongono funzionalità comunemente presenti nei linguaggi di programmazione (come PHP).

Le direttive di campo sono utili per manipolare i dati una volta recuperati, consentendoci di trasformare il valore di un campo nel modo richiesto e offrendoci potenti capacità di importazione/esportazione dei dati.

Ad esempio, questa query:

query {
  posts {
    title @strUpperCase
  }
}

...produrrà questa risposta:

{
  "data": {
    "posts": [
      {
        "title": "HELLO WORLD!"
      },
      {
        "title": "LOVELY WEATHER"
      }
    ]
  }
}

Campi ausiliari

Allo schema GraphQL vengono aggiunti campi che forniscono funzionalità ausiliarie di uso comune.

I campi ausiliari sono campi globali, quindi vengono aggiunti a ogni singolo tipo nello schema GraphQL: in QueryRoot, ma anche in Post, User, ecc.

In questa query, recuperiamo gli ID degli utenti del sito ed eseguiamo una nuova query GraphQL passando il loro ID come parametro:

query {
  users {
    userID: id
    url: _urlAddParams(
      url: "https://somewebsite/endpoint/user-data",
      params: {
        userID: $__userID
      }
    )
    headers: _httpRequestHeaders
    headerNameValueEntryList: _objectConvertToNameValueEntryList(
      object: $__headers
    )
    _sendHTTPRequest(input: {
      url: $__url
      options: {
        headers: $__headerNameValueEntryList
      }
    }) {
      statusCode
      contentType
      body
    }
  }
}

Campi di ambiente

Lo schema GraphQL è arricchito con il campo globale _env, che consente di ottenere il valore di una variabile d'ambiente o di una costante PHP (nella maggior parte dei casi definita in wp-config.php, ma che può essere definita anche altrove).

Questa query recupera la costante d'ambiente GITHUB_ACCESS_TOKEN che potremmo configurare per accedere a un repository privato su GitHub:

query {
  githubAccessToken: _env(name: "GITHUB_ACCESS_TOKEN")
}

Invio di e-mail

Lo schema GraphQL è arricchito con la mutation globale _sendEmail.

La mutation _sendEmail invia e-mail eseguendo la funzione WordPress wp_mail. Di conseguenza, utilizzerà la configurazione definita per l'invio di e-mail in WordPress (come il provider SMTP da utilizzare).

L'e-mail può essere inviata con il tipo di contenuto "text" o "HTML", a seconda del valore dell'input messageAs (che è un InputObject "oneof", in modo che possa essere fornita solo una delle sue proprietà).

mutation {
  _sendEmail(
    input: {
      to: "target@email.com"
      subject: "Email with text content"
      messageAs: {
        text: "Hello world!"
      }
    }
  ) {
    status
    errors {
      __typename
      ...on ErrorPayload {
        message
      }
    }
  }
}

Acquista il pacchetto All-Inclusive

Personale
$79
/anno
“All-Inclusive” pacchetto
Licenza per 1 dominio
Acquista ->
  • 1 dominio
  • Supporto
  • Aggiornamenti del prodotto
Organizzazione
$99
/anno
“All-Inclusive” pacchetto
Licenza per 3 domini
Acquista ->
  • 3 domini
  • Supporto
  • Aggiornamenti del prodotto
Professionale
$199
/anno
“All-Inclusive” pacchetto
Licenza per 10 domini
Acquista ->
  • 10 domini
  • Supporto
  • Aggiornamenti del prodotto

La licenza è valida 1 anno (rinnovabile ogni anno). I prezzi sono in USD.

Hai bisogno di più domini? Contattaci

Garanzia di rimborso di 30 giorni

Acquista qualsiasi estensione con la sicurezza di poter richiedere un rimborso

Features illustration
Money back guarantee

Consulta la nostra politica di rimborso

Testimonial image

“Questo plugin è di un altro livello! Porta il tuo sito a un livello completamente nuovo e lo trasforma in una macchina potentissima. Più esplori ciò che può fare, più ne rimani impressionato. Se sei indeciso, prendilo e basta: altrimenti te ne pentirai. La documentazione parla da sé ed è solida come poche. Leo (lo sviluppatore) è uno degli sviluppatori più brillanti e svegli che abbia mai incontrato. È super reattivo e si vede che ne sa parecchio. Sinceramente, sono entusiasta di tutto ciò che questo plugin permette di fare. Le possibilità sono praticamente infinite e, se la SEO è importante per te, questo strumento aiuterà il tuo sito a posizionarsi alla grande.”

olmate - Sviluppatore web

Iscriviti alla nostra newsletter

Resta aggiornato su tutte le novità di Gato GraphQL.