private static function getGraphqlFieldsFromProviders(string $namespace, string $className, string $annotationName, string $targetType, bool $isRoot = false)
    {
        $fields = [];
        foreach (self::$providers as $className => $configuration) {
            $providerMethods = $configuration['methods'];
            $providerAnnotation = $configuration['annotation'];

            $filteredMethods = [];
            foreach ($providerMethods as $methodName => $config) {
                $annotations = $config['annotations'];

                $annotation = self::getFirstAnnotationMatching($annotations, \sprintf('Overblog\\GraphQLBundle\\Annotation\\%s', $annotationName));
                if (!$annotation) {
                    continue;
                }

                $annotationTarget = 'Query' === $annotationName ? $annotation->targetType : null;
                if (!$annotationTarget && $isRoot) {
                    $annotationTarget = $targetType;
                }

                if ($annotationTarget !== $targetType) {
                    continue;
                }

                $filteredMethods[$methodName] = $config;
            }

            $currentValue = \sprintf("service('%s')", self::formatNamespaceForExpression($className));
            $providerFields = self::getGraphqlFieldsFromAnnotations($namespace, $filteredMethods, false, true, $currentValue, $annotationName);
            foreach ($providerFields as $fieldName => $fieldConfig) {
                if ($providerAnnotation->prefix) {
                    $fieldName = \sprintf('%s%s', $providerAnnotation->prefix, $fieldName);
                }
                $fields[$fieldName] = $fieldConfig;
            }
        }

        return $fields;
    }
private static function getGraphqlFieldsFromProviders(string $namespace, string $className, string $annotationName, string $targetType, bool $isRoot = false)
    {
        $fields = [];
        foreach (self::$providers as $className => $configuration) {
            $providerMethods = $configuration['methods'];
            $providerAnnotation = $configuration['annotation'];

            $filteredMethods = [];
            foreach ($providerMethods as $methodName => $config) {
                $annotations = $config['annotations'];

                $annotation = self::getFirstAnnotationMatching($annotations, \sprintf('Overblog\\GraphQLBundle\\Annotation\\%s', $annotationName));
                if (!$annotation) {
                    continue;
                }

                $annotationTarget = 'Query' === $annotationName ? $annotation->targetType : null;
                if (!$annotationTarget && $isRoot) {
                    $annotationTarget = $targetType;
                }

                if ($annotationTarget !== $targetType) {
                    continue;
                }

                $filteredMethods[$methodName] = $config;
            }

            $currentValue = \sprintf("service('%s')", self::formatNamespaceForExpression($className));
            $providerFields = self::getGraphqlFieldsFromAnnotations($namespace, $filteredMethods, false, true, $currentValue, $annotationName);
            foreach ($providerFields as $fieldName => $fieldConfig) {
                if ($providerAnnotation->prefix) {
                    $fieldName = \sprintf('%s%s', $providerAnnotation->prefix, $fieldName);
                }
                $fields[$fieldName] = $fieldConfig;
            }
        }

        return $fields;
    }
private static function getGraphqlFieldsFromProviders ( string $ namespace , string $ className , string $ annotationName , string $ targetType , bool $ isRoot = false ) { $ fields = [ ] ; foreach ( self :: $ providers as $ className => $ configuration ) { $ providerMethods = $ configuration [ 'methods' ] ; $ providerAnnotation = $ configuration [ 'annotation' ] ; $ filteredMethods = [ ] ; foreach ( $ providerMethods as $ methodName => $ config ) { $ annotations = $ config [ 'annotations' ] ; $ annotation = self :: getFirstAnnotationMatching ( $ annotations , \ sprintf ( 'Overblog\\GraphQLBundle\\Annotation\\%s' , $ annotationName ) ) ; if ( ! $ annotation ) { continue ; } $ annotationTarget = 'Query' === $ annotationName ? $ annotation -> targetType : null ; if ( ! $ annotationTarget && $ isRoot ) { $ annotationTarget = $ targetType ; } if ( $ annotationTarget !== $ targetType ) { continue ; } $ filteredMethods [ $ methodName ] = $ config ; } $ currentValue = \ sprintf ( "service('%s')" , self :: formatNamespaceForExpression ( $ className ) ) ; $ providerFields = self :: getGraphqlFieldsFromAnnotations ( $ namespace , $ filteredMethods , false , true , $ currentValue , $ annotationName ) ; foreach ( $ providerFields as $ fieldName => $ fieldConfig ) { if ( $ providerAnnotation -> prefix ) { $ fieldName = \ sprintf ( '%s%s' , $ providerAnnotation -> prefix , $ fieldName ) ; } $ fields [ $ fieldName ] = $ fieldConfig ; } } return $ fields ; }
Return fields config from Provider methods.

@param string $className
@param array  $methods
@param bool   $isMutation

@return array
Return fields config from Provider methods .