<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
lastdragon-ru / lara-asp-graphql-printer example snippets
declare(strict_types = 1);
use GraphQL\Utils\BuildSchema;
use LastDragon_ru\LaraASP\Dev\App\Example;
use LastDragon_ru\LaraASP\GraphQLPrinter\Printer;
use LastDragon_ru\LaraASP\GraphQLPrinter\Settings\DefaultSettings;
$schema = BuildSchema::build(
<<<'GRAPHQL'
type Query {
a: A
}
type A @a {
id: ID!
b: [B!]
}
type B @b {
id: ID!
}
directive @a on OBJECT
directive @b on OBJECT
GRAPHQL,
);
$type = $schema->getType('A');
$settings = new DefaultSettings();
$printer = new Printer($settings, null, $schema);
assert($type !== null);
Example::raw($printer->print($type), 'graphql');
Example::raw($printer->export($type), 'graphql');
declare(strict_types = 1);
use GraphQL\Language\Parser;
use GraphQL\Utils\BuildSchema;
use LastDragon_ru\LaraASP\Dev\App\Example;
use LastDragon_ru\LaraASP\GraphQLPrinter\Contracts\DirectiveFilter;
use LastDragon_ru\LaraASP\GraphQLPrinter\Contracts\TypeFilter;
use LastDragon_ru\LaraASP\GraphQLPrinter\Printer;
use LastDragon_ru\LaraASP\GraphQLPrinter\Settings\DefaultSettings;
$typeFilter = new class() implements TypeFilter {
#[Override]
public function isAllowedType(string $type, bool $isStandard): bool {
return $type !== 'Forbidden';
}
};
$directiveFilter = new class() implements DirectiveFilter {
#[Override]
public function isAllowedDirective(string $directive, bool $isStandard): bool {
return $directive !== 'forbidden';
}
};
$schema = BuildSchema::build(
<<<'GRAPHQL'
type Query {
allowed: Boolean @forbidden @allowed
forbidden: Forbidden
}
type Forbidden {
id: ID!
}
directive @allowed on FIELD_DEFINITION
directive @forbidden on FIELD_DEFINITION
GRAPHQL,
);
$query = Parser::parse(
<<<'GRAPHQL'
query {
allowed
forbidden {
id
}
}
GRAPHQL,
);
$settings = (new DefaultSettings())
->setDirectiveFilter($directiveFilter)
->setTypeFilter($typeFilter);
$printer = new Printer($settings, null, $schema);
Example::raw($printer->print($schema), 'graphql');
Example::raw($printer->print($query), 'graphql');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.