GraphQL\Type\Definition\EnumType::__construct PHP Method

__construct() public method

public __construct ( $config )
    public function __construct($config)
    {
        if (!isset($config['name'])) {
            $config['name'] = $this->tryInferName();
        }
        Config::validate($config, ['name' => Config::NAME | Config::REQUIRED, 'values' => Config::arrayOf(['name' => Config::NAME | Config::REQUIRED, 'value' => Config::ANY, 'deprecationReason' => Config::STRING, 'description' => Config::STRING], Config::KEY_AS_NAME | Config::MAYBE_NAME), 'description' => Config::STRING]);
        $this->name = $config['name'];
        $this->description = isset($config['description']) ? $config['description'] : null;
        $this->values = [];
        if (!empty($config['values'])) {
            foreach ($config['values'] as $name => $value) {
                if (!is_array($value)) {
                    if (is_string($name)) {
                        $value = ['name' => $name, 'value' => $value];
                    } else {
                        if (is_int($name) && is_string($value)) {
                            $value = ['name' => $value, 'value' => $value];
                        }
                    }
                }
                // value will be equal to name only if 'value'  is not set in definition
                $this->values[] = new EnumValueDefinition($value + ['name' => $name, 'value' => $name]);
            }
        }
    }

Usage Example

Exemplo n.º 1
0
 public function __construct()
 {
     $config = ['values' => ['ICON' => Image::SIZE_ICON, 'SMALL' => Image::SIZE_SMALL, 'MEDIUM' => Image::SIZE_MEDIUM, 'ORIGINAL' => Image::SIZE_ORIGINAL]];
     parent::__construct($config);
 }
All Usage Examples Of GraphQL\Type\Definition\EnumType::__construct