拡張機能

Schema Functions

PHP プログラミング言語の機能を GraphQL のフィールドおよびディレクティブとして公開します。

Logo
Target Image

Click to watch tutorial video - 07:54

GraphQL スキーマには、PHP プログラミング言語の機能を公開するフィールドとディレクティブが提供されています。

関数フィールド

関数フィールドはグローバルフィールドであるため、GraphQL スキーマのすべての型(QueryRoot だけでなく PostUser なども含む)に追加されます。

関数フィールドは、データを取得した後に操作するのに役立ちます。フィールドの値を任意の方法で変換でき、強力なデータのインポート・エクスポート機能を提供します。

たとえば、Post.hasComments フィールドは存在しますが、その逆の値が必要な場合があります。新たに Post.notHasComments フィールドを作成する(PHP コードを編集する必要がある)代わりに、Field to Input 機能を使用して hasComments の値を not フィールドに入力し、GraphQL クエリ内で常に新しい値を算出することができます。

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

関数ディレクティブ

GraphQL スキーマには、PHP などのプログラミング言語でよく見られる機能を公開するディレクティブが提供されています。

ディレクティブフィールドは、データを取得した後に操作するのに役立ちます。フィールドの値を任意の方法で変換でき、強力なデータのインポート・エクスポート機能を提供します。

たとえば、このクエリは:

query {
  posts {
    title @strUpperCase
  }
}

...次のレスポンスを返します:

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

ヘルパーフィールド

GraphQL スキーマには、よく使われるヘルパー機能を提供するフィールドが追加されています。

ヘルパーフィールドはグローバルフィールドであるため、GraphQL スキーマのすべての型(QueryRoot だけでなく PostUser なども含む)に追加されます。

このクエリでは、ウェブサイト上のユーザーの ID を取得し、その ID をパラメーターとして新しい GraphQL クエリを実行します:

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

環境フィールド

GraphQL スキーマには、環境変数または PHP 定数(主に wp-config.php で定義されますが、他の場所で定義されることもあります)から値を取得できるグローバルフィールド _env が提供されています。

このクエリは、GitHub のプライベートリポジトリにアクセスするために設定する環境定数 GITHUB_ACCESS_TOKEN を取得します:

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

メール送信

GraphQL スキーマには、グローバルミューテーション _sendEmail が提供されています。

ミューテーション _sendEmail は、WordPress の wp_mail 関数を実行してメールを送信します。そのため、WordPress でのメール送信設定(使用する SMTP プロバイダーなど)が適用されます。

メールは、messageAs 入力の値に応じて「text」または「HTML」のコンテンツタイプで送信できます(messageAs は「oneof」の InputObject であるため、プロパティのいずれか一方のみ指定できます)。

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

All-Inclusive バンドルを購入

Personal
$79
/
“All-Inclusive” バンドル
ライセンス対象: 1 ドメイン
購入 ->
  • 1 ドメイン
  • サポート
  • 製品アップデート
Organization
$99
/
“All-Inclusive” バンドル
ライセンス対象: 3 ドメイン
購入 ->
  • 3 ドメイン
  • サポート
  • 製品アップデート
Professional
$199
/
“All-Inclusive” バンドル
ライセンス対象: 10 ドメイン
購入 ->
  • 10 ドメイン
  • サポート
  • 製品アップデート

ライセンスは1年間有効(毎年更新可能)です。価格は USD 表示です。

より多くのドメインが必要ですか?お問い合わせください

30日間の返金保証

各拡張機能は返金申請の保証付きで購入できます

Features illustration
Money back guarantee

返金ポリシーをご覧ください

Testimonial image

“このプラグインはまさに別次元です!サイトをまったく新しいレベルへと引き上げ、強力なパワーハウスに変えてくれます。できることを探れば探るほど、どんどん感動が深まります。迷っているなら、とにかく入手してください。後で後悔することになりますよ。 ドキュメントはそれ自体が雄弁に語っており、これ以上ないほど充実しています。 Leo(開発者)は、これまで出会った中で最も鋭く、機転の利く開発者の一人です。レスポンスは非常に速く、自分の専門分野を完全に把握していることが伝わります。このプラグインがここまで多くのことを実現できることに、心から興奮しています。可能性はほぼ無限大で、SEOを重視しているなら、このプラグインがサイトの順位を大きく押し上げてくれるでしょう。”

olmate - Webデベロッパー

ニュースレターを購読する

Gato GraphQL のすべてのアップデートを把握しましょう。