PHP code example of carnage / php-graphql-client
1. Go to this page and download the library: Download carnage/php-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/ */
carnage / php-graphql-client example snippets
$gql = (new Query('companies'))
->setSelectionSet(
[
'name',
'serialNumber'
]
);
$gql = (new Query())
->setSelectionSet(
[
(new Query('companies'))
->setSelectionSet(
[
'name',
'serialNumber'
]
)
]
);
$gql = (new Query())
->setSelectionSet(
[
(new Query('companies'))
->setSelectionSet(
[
'name',
'serialNumber'
]
),
(new Query('countries'))
->setSelectionSet(
[
'name',
'code',
]
)
]
);
$gql = (new Query('companies'))
->setSelectionSet(
[
'name',
'serialNumber',
(new Query('branches'))
->setSelectionSet(
[
'address',
(new Query('contracts'))
->setSelectionSet(['date'])
]
)
]
);
$gql = (new Query('companies'))
->setArguments(['name' => 'Tech Co.', 'first' => 3])
->setSelectionSet(
[
'name',
'serialNumber'
]
);
$gql = (new Query('companies'))
->setArguments(['serialNumbers' => [159, 260, 371]])
->setSelectionSet(
[
'name',
'serialNumber'
]
);
$gql = (new Query('companies'))
->setArguments(['filter' => new RawObject('{name_starts_with: "Face"}')])
->setSelectionSet(
[
'name',
'serialNumber'
]
);
$gql = (new Query('companies'))
->setVariables(
[
new Variable('name', 'String', true),
new Variable('limit', 'Int', false, 5)
]
)
->setArguments(['name' => '$name', 'first' => '$limit'])
->setSelectionSet(
[
'name',
'serialNumber'
]
);
$gql = (new Query())
->setSelectionSet(
[
(new Query('companies', 'TechCo'))
->setArguments(['name' => 'Tech Co.'])
->setSelectionSet(
[
'name',
'serialNumber'
]
),
(new Query('companies', 'AnotherTechCo'))
->setArguments(['name' => 'A.N. Other Tech Co.'])
->setSelectionSet(
[
'name',
'serialNumber'
]
)
]
);
$gql = (new Query('companies'))
->setAlias('CompanyAlias')
->setSelectionSet(
[
'name',
'serialNumber'
]
);
$gql = new Query('companies');
$gql->setSelectionSet(
[
'serialNumber',
'name',
(new InlineFragment('PrivateCompany'))
->setSelectionSet(
[
'boardMembers',
'shareholders',
]
),
]
);
$builder = (new QueryBuilder('companies'))
->setVariable('namePrefix', 'String', true)
->setArgument('filter', new RawObject('{name_starts_with: $namePrefix}'))
->selectField('name')
->selectField('serialNumber');
$gql = $builder->getQuery();
$builder = (new QueryBuilder('companies', 'CompanyAlias'))
->selectField('name')
->selectField('serialNumber');
$gql = $builder->getQuery();
$builder = (new QueryBuilder('companies'))
->setAlias('CompanyAlias')
->selectField('name')
->selectField('serialNumber');
$gql = $builder->getQuery();
$builder = (new QueryBuilder())
->setVariable('namePrefix', 'String', true)
->selectField(
(new QueryBuilder('companies'))
->setArgument('filter', new RawObject('{name_starts_with: $namePrefix}'))
->selectField('name')
->selectField('serialNumber')
)
->selectField(
(new QueryBuilder('company'))
->setArgument('serialNumber', 123)
->selectField('name')
);
$gql = $builder->getQuery();
$client = new Client(
'http://api.graphql.com',
['Authorization' => 'Basic xyz']
);
$client = new Client(
'http://api.graphql.com',
[],
[
'connect_timeout' => 5,
'timeout' => 5,
'headers' => [
'Authorization' => 'Basic xyz'
'User-Agent' => 'testing/1.0',
],
'proxy' => [
'http' => 'tcp://localhost:8125', // Use this proxy with "http"
'https' => 'tcp://localhost:9124', // Use this proxy with "https",
'no' => ['.mit.edu', 'foo.com'] // Don't use a proxy with these
],
'cert' => ['/path/server.pem', 'password']
...
]
);
$client = new Client(
'http://api.graphql.com',
[],
[],
$myHttpClient
);
$results = $client->runQuery($gql);
$results->getData()->companies[0]->branches;
$results = $client->runQuery($gql, true);
$results->getData()['companies'][1]['branches']['address'];
$gql = (new Query('companies'))
->setVariables(
[
new Variable('name', 'String', true),
new Variable('limit', 'Int', false, 5)
]
)
->setArguments(['name' => '$name', 'first' => '$limit'])
->setSelectionSet(
[
'name',
'serialNumber'
]
);
$variablesArray = ['name' => 'Tech Co.', 'first' => 5];
$results = $client->runQuery($gql, true, $variablesArray);
$mutation = (new Mutation('createCompany'))
->setArguments(['companyObject' => new RawObject('{name: "Trial Company", employees: 200}')])
->setSelectionSet(
[
'_id',
'name',
'serialNumber',
]
);
$results = $client->runQuery($mutation);
$mutation = (new Mutation('createCompany'))
->setVariables([new Variable('company', 'CompanyInputObject', true)])
->setArguments(['companyObject' => '$company']);
$variables = ['company' => ['name' => 'Tech Company', 'type' => 'Testing', 'size' => 'Medium']];
$client->runQuery(
$mutation, true, $variables
);
mutation($company: CompanyInputObject!) {
createCompany(companyObject: $company)
}
{"company":{"name":"Tech Company","type":"Testing","size":"Medium"}}
query($name: String!) {
pokemon(name: $name) {
id
number
name
evolutions {
id
number
name
weight {
minimum
maximum
}
attacks {
fast {
name
type
damage
}
}
}
}
}
$client = new Client(
'https://graphql-pokemon.now.sh/'
);
$gql = (new Query('pokemon'))
->setVariables([new Variable('name', 'String', true)])
->setArguments(['name' => '$name'])
->setSelectionSet(
[
'id',
'number',
'name',
(new Query('evolutions'))
->setSelectionSet(
[
'id',
'number',
'name',
(new Query('attacks'))
->setSelectionSet(
[
(new Query('fast'))
->setSelectionSet(
[
'name',
'type',
'damage',
]
)
]
)
]
)
]
);
try {
$name = readline('Enter pokemon name: ');
$results = $client->runQuery($gql, true, ['name' => $name]);
}
catch (QueryError $exception) {
print_r($exception->getErrorDetails());
exit;
}
print_r($results->getData()['pokemon']);
$client = new Client(
'https://graphql-pokemon.now.sh/'
);
$builder = (new QueryBuilder('pokemon'))
->setVariable('name', 'String', true)
->setArgument('name', '$name')
->selectField('id')
->selectField('number')
->selectField('name')
->selectField(
(new QueryBuilder('evolutions'))
->selectField('id')
->selectField('name')
->selectField('number')
->selectField(
(new QueryBuilder('attacks'))
->selectField(
(new QueryBuilder('fast'))
->selectField('name')
->selectField('type')
->selectField('damage')
)
)
);
try {
$name = readline('Enter pokemon name: ');
$results = $client->runQuery($builder, true, ['name' => $name]);
}
catch (QueryError $exception) {
print_r($exception->getErrorDetails());
exit;
}
print_r($results->getData()['pokemon']);
$gql = <<<QUERY
query {
pokemon(name: "Pikachu") {
id
number
name
attacks {
special {
name
type
damage
}
}
}
}
QUERY;
$results = $client->runRawQuery($gql);
$ composer