Skip to content

A php GraphQL Query Builder. Nice API. Readable queries.

License

Notifications You must be signed in to change notification settings

fnash/graphql-qb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scrutinizer Code Quality Build Status

graphql-qb

A php GraphQL Query Builder. Nice API. Readable queries. Examples in Unit Tests.

Includes:

  • Query / Mutation / Fragment
  • Sorted Fields
  • Custom Operation name
  • A predictable operation name is generated if you don't specify one and add variables
  • Add variables
  • Add arguments
  • Directives (Include / Skip)
  • Sub query

TODO:

  • Arguments in sub queries
<?php

include_once 'vendor/autoload.php';

use Fnash\GraphQL\Query;

$query = Query::create('article')
    ->variables([
        '$withTags' => 'Boolean = false',
    ])
    ->fields([
        'id',
        'title',
        'body',
        'myLanguageAlias' => 'language',
        'tags' => Query::create()->fields([
            'id',
            'tagLabel' => 'label',
            'language',
            'taxonomy' => Query::create()->fields([
                'id',
                'label',
                'language'
            ]),
        ])
    ])
    ->includeIf([
        'tags' => '$withTags'
    ])
;

echo $query;
query query_d084b5fa08a495bb76e87b51cb5e2b33fc87039a($withTags: Boolean = false) {
  article {
    body
    id
    myLanguageAlias: language
    tags @include(if: $withTags) {
      id
      language
      tagLabel: label
      taxonomy {
        id
        label
        language
      }
    }
    title
  }
}