PHP code example of softonic / graphql-client
1. Go to this page and download the library: Download softonic/graphql-client library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
softonic / graphql-client example snippets
$client = \Softonic\GraphQL\ClientBuilder::build('https://your-domain/graphql');
$options = [
'clientId' => 'myclient',
'clientSecret' => 'mysecret',
];
$provider = new Softonic\OAuth2\Client\Provider\Softonic($options);
$config = ['grant_type' => 'client_credentials', 'scope' => 'myscope'];
$cache = new \Symfony\Component\Cache\Adapter\FilesystemAdapter();
$client = \Softonic\GraphQL\ClientBuilder::buildWithOAuth2Provider(
'https://your-domain/graphql',
$provider,
$config,
$cache
);
/**
* Query Example
*/
$query = <<<'QUERY'
query GetFooBar($idFoo: String, $idBar: String) {
foo(id: $idFoo) {
id_foo
bar (id: $idBar) {
id_bar
}
}
}
QUERY;
$variables = [
'idFoo' => 'foo',
'idBar' => 'bar',
];
/** @var \Softonic\GraphQL\Client $client */
$response = $client->query($query, $variables);
if($response->hasErrors()) {
// Returns an array with all the errors found.
$response->getErrors();
}
else {
// Returns an array with all the data returned by the GraphQL server.
$response->getData();
}
/**
* Mutation Example
*/
$mutation = <<<'MUTATION'
mutation ($foo: ObjectInput!){
CreateObjectMutation (object: $foo) {
status
}
}
MUTATION;
$variables = [
'foo' => [
'id_foo' => 'foo',
'bar' => [
'id_bar' => 'bar'
]
]
];
/** @var \Softonic\GraphQL\Client $client */
$response = $client->query($mutation, $variables);
if($response->hasErrors()) {
// Returns an array with all the errors found.
$response->getErrors();
}
else {
// Returns an array with all the data returned by the GraphQL server.
$response->getData();
}
php
$response = $client->query($query, $variables);
$data = $response->getDataObject();
/**
* $data = new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_author' => 1234,
* 'genre' => 'adventure',
* 'chapters' => new QueryCollection([
* new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 1,
* 'name' => 'Chapter One',
* 'pov' => 'first person',
* 'pages' => new QueryCollection([]),
* ]),
* new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'name' => 'Chapter two',
* 'pov' => 'third person',
* 'pages' => new QueryCollection([
* new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'id_page' => 1,
* 'has_illustrations' => false,
* ]),
* new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'id_page' => 2,
* 'has_illustrations' => false,
* ]),
* ]),
* ]),
* ]),
* ]);
*/
php
$data->chapters = $data->chapters->filter(['pov' => 'third person']);
/**
* $data = new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_author' => 1234,
* 'genre' => 'adventure',
* 'chapters' => new QueryCollection([
* new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'name' => 'Chapter two',
* 'pov' => 'third person',
* 'pages' => new QueryCollection([
* new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'id_page' => 1,
* 'has_illustrations' => false,
* ]),
* new QueryItem([
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'id_page' => 2,
* 'has_illustrations' => false,
* ]),
* ]),
* ]),
* ]),
* ]);
*/
php
$mutationQuery = <<<'QUERY'
mutation ($book: BookInput!){
ReplaceBook (book: $book) {
status
}
}
QUERY;
$client->mutate($mutationQuery, $mutation);
php
/**
* $mutation = [
* 'book' => [
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_author' => 1234,
* 'genre' => 'adventure',
* 'chapters' => [
* 'upsert' => [
* [
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'name' => 'Chapter two',
* 'pages' => [
* 'upsert' => [
* [
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'id_page' => 2,
* 'has_illustrations' => true,
* ],
* [
* 'id_book' => 'f7cfd732-e3d8-3642-a919-ace8c38c2c6d',
* 'id_chapter' => 2,
* 'id_page' => 3,
* 'has_illustrations' => false,
* ],
* ],
* ],
* ],
* ],
* ],
* ],
* ];
*/