/** * Set up test environment. */ public function setUp() { parent::setUp(); $schema = new SchemaBuilder(); $this->registrar = new ConnectionRegistrar(); $this->edgeRegistrar = new EdgeRegistrar(); $this->typeRegistrar = new TypeRegistrar(); $schema->setConnectionRegistrar($this->registrar); $schema->setEdgeRegistrar($this->edgeRegistrar); $schema->setTypeRegistrar($this->typeRegistrar); $this->registrar->setSchema($schema); $this->typeRegistrar->setSchema($schema); $this->edgeRegistrar->setSchema($schema); }
/** * Find field by operation and name. * * @param string $name * @param string $operation * @return array */ public function getField($selection, $operation = 'query') { if (!$this->isField($selection)) { return null; } $name = $selection->name->value; if ($operation == 'mutation') { return $this->schema->getMutationRegistrar()->get($name); } elseif ($operation == 'type') { return $this->schema->getTypeRegistrar()->get($name); } return $this->schema->getQueryRegistrar()->get($name); }
/** * Get field and attach necessary middleware. * * @param string $name * @param string $namespace * @return \Nuwave\Lighthouse\Schema\Field */ protected function createField($name, $namespace) { $field = new Field($name, $this->getClassName($namespace)); $field->addMiddleware($this->schema->getMiddlewareStack()); return $field; }