확장 기능

Schema Functions

PHP 프로그래밍 언어의 기능을 GraphQL 필드 및 디렉티브로 노출합니다.

Logo
Target Image

Click to watch tutorial video - 07:54

GraphQL 스키마에는 PHP 프로그래밍 언어의 기능을 노출하는 필드와 디렉티브가 제공됩니다.

함수 필드

함수 필드는 전역 필드이므로, GraphQL 스키마의 모든 타입(QueryRoot뿐만 아니라 Post, User 등)에 추가됩니다.

함수 필드는 데이터를 가져온 후 조작하는 데 유용합니다. 필드 값을 필요한 방식으로 변환할 수 있으며, 강력한 데이터 가져오기/내보내기 기능을 제공합니다.

예를 들어, 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뿐만 아니라 Post, User 등)에 추가됩니다.

다음 쿼리에서는 웹사이트 사용자들의 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 - 웹 개발자

뉴스레터 구독하기

Gato GraphQL의 모든 업데이트를 놓치지 마세요.