private static function getGraphqlInterface(GQL\TypeInterface $interfaceAnnotation, array $classAnnotations, array $properties, array $methods, string $namespace)
    {
        $interfaceConfiguration = [];

        $fields = self::getGraphqlFieldsFromAnnotations($namespace, $properties);
        $fields = self::getGraphqlFieldsFromAnnotations($namespace, $methods, false, true) + $fields;

        $interfaceConfiguration['fields'] = $fields;
        $interfaceConfiguration = self::getDescriptionConfiguration($classAnnotations) + $interfaceConfiguration;

        $interfaceConfiguration['resolveType'] = self::formatExpression($interfaceAnnotation->resolveType);

        return ['type' => 'interface', 'config' => $interfaceConfiguration];
    }
private static function getGraphqlInterface(GQL\TypeInterface $interfaceAnnotation, array $classAnnotations, array $properties, array $methods, string $namespace)
    {
        $interfaceConfiguration = [];

        $fields = self::getGraphqlFieldsFromAnnotations($namespace, $properties);
        $fields = self::getGraphqlFieldsFromAnnotations($namespace, $methods, false, true) + $fields;

        $interfaceConfiguration['fields'] = $fields;
        $interfaceConfiguration = self::getDescriptionConfiguration($classAnnotations) + $interfaceConfiguration;

        $interfaceConfiguration['resolveType'] = self::formatExpression($interfaceAnnotation->resolveType);

        return ['type' => 'interface', 'config' => $interfaceConfiguration];
    }
private static function getGraphqlInterface ( GQL \ TypeInterface $ interfaceAnnotation , array $ classAnnotations , array $ properties , array $ methods , string $ namespace ) { $ interfaceConfiguration = [ ] ; $ fields = self :: getGraphqlFieldsFromAnnotations ( $ namespace , $ properties ) ; $ fields = self :: getGraphqlFieldsFromAnnotations ( $ namespace , $ methods , false , true ) + $ fields ; $ interfaceConfiguration [ 'fields' ] = $ fields ; $ interfaceConfiguration = self :: getDescriptionConfiguration ( $ classAnnotations ) + $ interfaceConfiguration ; $ interfaceConfiguration [ 'resolveType' ] = self :: formatExpression ( $ interfaceAnnotation -> resolveType ) ; return [ 'type' => 'interface' , 'config' => $ interfaceConfiguration ] ; }
Create a GraphQL Interface type configuration from annotations on properties.

@param string        $shortClassName
@param GQL\Interface $interfaceAnnotation
@param array         $properties
@param array         $methods
@param string        $namespace

@return array
Create a GraphQL Interface type configuration from annotations on properties .