GraphQL\Type\Definition\FieldDefinition::createMap PHP Метод

createMap() публичный статический Метод

public static createMap ( array $fields, string $parentTypeName = null ) : array
$fields array
$parentTypeName string
Результат array
    public static function createMap(array $fields, $parentTypeName = null)
    {
        $map = [];
        foreach ($fields as $name => $field) {
            if (is_array($field)) {
                if (!isset($field['name']) && is_string($name)) {
                    $field['name'] = $name;
                }
                $fieldDef = self::create($field, $parentTypeName);
            } else {
                if ($field instanceof FieldDefinition) {
                    $fieldDef = $field;
                } else {
                    if (is_string($name)) {
                        $fieldDef = self::create(['name' => $name, 'type' => $field], $parentTypeName);
                    } else {
                        throw new InvariantViolation("Unexpected field definition for type {$parentTypeName} at key {$name}: " . Utils::printSafe($field));
                    }
                }
            }
            $map[$fieldDef->name] = $fieldDef;
        }
        return $map;
    }

Usage Example

Пример #1
0
 public function __construct(array $config)
 {
     Config::validate($config, ['name' => Config::STRING, 'fields' => Config::arrayOf(FieldDefinition::getDefinition(), Config::KEY_AS_NAME), 'resolveType' => Config::CALLBACK, 'description' => Config::STRING]);
     $this->name = $config['name'];
     $this->description = isset($config['description']) ? $config['description'] : null;
     $this->_fields = !empty($config['fields']) ? FieldDefinition::createMap($config['fields']) : [];
     $this->_resolveTypeFn = isset($config['resolveType']) ? $config['resolveType'] : null;
 }
All Usage Examples Of GraphQL\Type\Definition\FieldDefinition::createMap