for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Drupal\graphql\Plugin\GraphQL\Interfaces;
use Drupal\Component\Plugin\PluginBase;
use Drupal\graphql\Plugin\GraphQL\PluggableSchemaBuilder;
use Drupal\graphql\Plugin\GraphQL\Traits\CacheablePluginTrait;
use Drupal\graphql\Plugin\GraphQL\Traits\DescribablePluginTrait;
use Drupal\graphql\Plugin\GraphQL\TypeSystemPluginInterface;
use GraphQL\Type\Definition\InterfaceType;
abstract class InterfacePluginBase extends PluginBase implements TypeSystemPluginInterface {
use CacheablePluginTrait;
use DescribablePluginTrait;
/**
* {@inheritdoc}
*/
public static function createInstance(PluggableSchemaBuilder $builder, $definition, $id) {
return new InterfaceType([
'fields' => function () use ($builder, $definition) {
return $builder->getFieldsByType($definition['name']);
}
] + $definition);
public function getDefinition() {
$definition = $this->getPluginDefinition();
return [
'name' => $definition['name'],
'description' => $this->buildDescription($definition),
];