Erweiterung

Schema Functions

Stelle Funktionalitäten der Programmiersprache PHP über GraphQL-Felder und -Direktiven bereit.

Logo
Target Image

Click to watch tutorial video - 07:54

Das GraphQL-Schema wird mit Feldern und Direktiven erweitert, die Funktionalitäten der Programmiersprache PHP bereitstellen.

Funktionsfelder

Funktionsfelder sind globale Felder und werden daher jedem einzelnen Typ im GraphQL-Schema hinzugefügt: in QueryRoot, aber auch in Post, User usw.

Funktionsfelder sind nützlich, um Daten nach dem Abruf zu manipulieren. Sie ermöglichen es dir, einen Feldwert auf jede gewünschte Weise zu transformieren, und bieten leistungsstarke Möglichkeiten zum Importieren und Exportieren von Daten.

Obwohl wir beispielsweise ein Feld Post.hasComments haben, benötigen wir möglicherweise den entgegengesetzten Wert. Anstatt ein neues Feld Post.notHasComments zu erstellen (was eine Änderung des PHP-Codes erfordern würde), können wir die Funktion Field to Input verwenden, um den Wert von hasComments in ein not-Feld einzuspeisen und so den neuen Wert vollständig innerhalb der GraphQL-Query zu berechnen:

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

Funktionsdirektiven

Das GraphQL-Schema wird mit Direktiven erweitert, die Funktionalitäten bereitstellen, die häufig in Programmiersprachen (wie PHP) zu finden sind.

Direktiven sind nützlich, um Daten nach dem Abruf zu manipulieren. Sie ermöglichen es dir, einen Feldwert auf jede gewünschte Weise zu transformieren, und bieten leistungsstarke Möglichkeiten zum Importieren und Exportieren von Daten.

Diese Query zum Beispiel:

query {
  posts {
    title @strUpperCase
  }
}

...erzeugt diese Antwort:

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

Hilfsfelder

Das GraphQL-Schema wird mit Feldern erweitert, die häufig benötigte Hilfsfunktionen bereitstellen.

Hilfsfelder sind globale Felder und werden daher jedem einzelnen Typ im GraphQL-Schema hinzugefügt: in QueryRoot, aber auch in Post, User usw.

In dieser Query rufen wir die IDs der Nutzer der Website ab und führen eine neue GraphQL-Query aus, bei der ihre ID als Parameter übergeben wird:

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
    }
  }
}

Umgebungsfelder

Das GraphQL-Schema wird mit dem globalen Feld _env erweitert, das es ermöglicht, einen Wert aus einer Umgebungsvariablen oder einer PHP-Konstante abzurufen (meistens in wp-config.php definiert, kann aber auch anderswo definiert sein).

Diese Query ruft die Umgebungskonstante GITHUB_ACCESS_TOKEN ab, die wir möglicherweise eingerichtet haben, um auf ein privates Repository auf GitHub zuzugreifen:

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

E-Mail-Versand

Das GraphQL-Schema wird mit der globalen Mutation _sendEmail erweitert.

Die Mutation _sendEmail sendet E-Mails durch Ausführen der WordPress-Funktion wp_mail. Dadurch wird die in WordPress definierte Konfiguration für den E-Mail-Versand verwendet (z. B. der zu verwendende SMTP-Anbieter).

Die E-Mail kann mit dem Inhaltstyp "text" oder "HTML" gesendet werden, abhängig vom Wert des Inputs messageAs (der ein "oneof"-InputObject ist, sodass nur eine seiner Eigenschaften angegeben werden kann).

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

All-Inclusive-Paket kaufen

Personal
$79
/Jahr
“All-Inclusive” Paket
Lizenz für 1 Domain
Kaufen ->
  • 1 Domain
  • Support
  • Produktaktualisierungen
Organization
$99
/Jahr
“All-Inclusive” Paket
Lizenz für 3 Domains
Kaufen ->
  • 3 Domains
  • Support
  • Produktaktualisierungen
Professional
$199
/Jahr
“All-Inclusive” Paket
Lizenz für 10 Domains
Kaufen ->
  • 10 Domains
  • Support
  • Produktaktualisierungen

Die Lizenz gilt für 1 Jahr (jährlich verlängerbar). Die Preise sind in USD.

Brauchst du mehr Domains? Kontaktiere uns

30 Tage Geld-zurück-Garantie

Kaufe jede Erweiterung mit der Gewissheit, dass du eine Rückerstattung anfordern kannst

Testimonial image

“This plugin is next level!. It takes your site to a whole new level and turns it into a powerhouse. The more you explore what it can do, the more impressed you’ll be. If you’re on the fence—just grab it, you’ll kick yourself later if you don’t!. The documentation speaks for itself and is solid as it gets. Leo (the dev) is one of the sharpest and most switched-on developers I’ve ever come across. He’s super responsive and clearly knows his stuff. I’m honestly stoked with how much this plugin can do. The possibilities are pretty much endless, and if SEO matters to you, this thing will help your site rank hard.”

olmate - Webdev

Abonniere unseren Newsletter

Bleib über alle Updates zu Gato GraphQL auf dem Laufenden.