Rozszerzenie

Schema Functions

Udostępniaj funkcjonalności języka programowania PHP poprzez pola i dyrektywy GraphQL.

Logo
Target Image

Click to watch tutorial video - 07:54

Schema GraphQL jest wzbogacona o pola i dyrektywy, które udostępniają funkcjonalności języka programowania PHP.

Pola Funkcji

Pola funkcji są polami globalnymi, dlatego są dodawane do każdego typu w schemacie GraphQL: w QueryRoot, ale także w Post, User itd.

Pola funkcji są przydatne do manipulowania danymi po ich pobraniu, umożliwiając transformację wartości pola w dowolny wymagany sposób oraz zapewniając potężne możliwości importu/eksportu danych.

Na przykład, choć mamy pole Post.hasComments, możemy potrzebować wartości przeciwnej. Zamiast tworzyć nowe pole Post.notHasComments (do czego musielibyśmy edytować kod PHP), możemy użyć funkcji Field to Input, aby przekazać wartość z hasComments do pola not, obliczając w ten sposób nową wartość bezpośrednio w ramach query GraphQL:

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

Dyrektywy Funkcji

Schema GraphQL jest wzbogacona o dyrektywy, które udostępniają funkcjonalności powszechnie spotykane w językach programowania (takich jak PHP).

Pola dyrektyw są przydatne do manipulowania danymi po ich pobraniu, umożliwiając transformację wartości pola w dowolny wymagany sposób oraz zapewniając potężne możliwości importu/eksportu danych.

Na przykład ta query:

query {
  posts {
    title @strUpperCase
  }
}

...wyprodukuje następującą odpowiedź:

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

Pola Pomocnicze

Schema GraphQL jest wzbogacona o pola zapewniające powszechnie używane funkcje pomocnicze.

Pola pomocnicze są polami globalnymi, dlatego są dodawane do każdego typu w schemacie GraphQL: w QueryRoot, ale także w Post, User itd.

W tej query pobieramy identyfikatory użytkowników witryny i wykonujemy nową query GraphQL, przekazując ich identyfikatory jako parametr:

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

Pola Środowiskowe

Schema GraphQL jest wzbogacona o globalne pole _env, które umożliwia pobranie wartości ze zmiennej środowiskowej lub ze stałej PHP (najczęściej definiowanej w wp-config.php, ale możliwej do zdefiniowania również w innych miejscach).

Ta query pobiera stałą środowiskową GITHUB_ACCESS_TOKEN, którą możemy skonfigurować, aby uzyskać dostęp do prywatnego repozytorium na GitHub:

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

Wysyłanie E-maili

Schema GraphQL jest wzbogacona o globalną mutację _sendEmail.

Mutacja _sendEmail wysyła e-maile, wykonując funkcję WordPress wp_mail. W rezultacie będzie korzystać z konfiguracji zdefiniowanej do wysyłania e-maili w WordPress (np. z dostawcy SMTP).

E-mail można wysłać z typem treści "text" lub "HTML", w zależności od wartości wejścia messageAs (które jest InputObject typu "oneof", dzięki czemu można podać tylko jedną z jego właściwości).

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

Kup pakiet All-Inclusive

Osobisty
$79
/rok
“All-Inclusive” pakiet
Licencja na 1 domenę
Kup ->
  • 1 domenę
  • Wsparcie
  • Aktualizacje produktu
Organizacja
$99
/rok
“All-Inclusive” pakiet
Licencja na 3 domen
Kup ->
  • 3 domen
  • Wsparcie
  • Aktualizacje produktu
Profesjonalny
$199
/rok
“All-Inclusive” pakiet
Licencja na 10 domen
Kup ->
  • 10 domen
  • Wsparcie
  • Aktualizacje produktu

Licencja jest na 1 rok (odnawialna co roku). Ceny podane są w USD.

Potrzebujesz więcej domen? Skontaktuj się z nami

30-dniowa gwarancja zwrotu pieniędzy

Kup dowolne rozszerzenie z pewością, że możesz poprosić o zwrot środków

Features illustration
Money back guarantee

Przeczytaj naszą politykę zwrotów

Testimonial image

“Ten plugin to zupełnie inny poziom! Wynosi Twoją stronę na całkiem nowy wymiar i zamienia ją w prawdziwą maszynę. Im więcej odkrywasz, co potrafi, tym bardziej jesteś pod wrażeniem. Jeśli się wahasz — po prostu go weź, bo będziesz żałować, że tego nie zrobiłeś! Dokumentacja mówi sama za siebie i jest solidna jak mało co. Leo (deweloper) to jeden z najostrzejszych i najbardziej ogarnietych programistów, z jakimi miałem do czynienia. Odpowiada błyskawicznie i wyraźnie zna się na rzeczy. Szczerze mówiąc, jestem zachwycony tym, co ten plugin potrafi. Możliwości są praktycznie nieograniczone, a jeśli zależy Ci na SEO, ta wtyczka pomoże Twojej stronie mocno wspiąć się w wynikach wyszukiwania.”

olmate - Webdeveloper

Zapisz się do naszego newslettera

Bądź na bieżąco ze wszystkimi aktualizacjami Gato GraphQL.