Automattic\WooCommerce\Vendor\GraphQL\Type\Definition

PhpEnumType::__constructpublicWC 1.0

Method of the class: PhpEnumType{}

No Hooks.

Returns

null. Nothing (null).

Usage

$PhpEnumType = new PhpEnumType();
$PhpEnumType->__construct( $enumClass, ?string $name, ?string $description, ?EnumTypeDefinitionNode $astNode, ?array $extensionASTNodes );
$enumClass(class-string<\UnitEnum>) (required)
The fully qualified class name of a native PHP enum.
?string $name
.
Default: null
?string $description
.
Default: null
?EnumTypeDefinitionNode $astNode
.
Default: null
?array $extensionASTNodes
.
Default: null

PhpEnumType::__construct() code WC 10.9.1

public function __construct(
    string $enumClass,
    ?string $name = null,
    ?string $description = null,
    ?EnumTypeDefinitionNode $astNode = null,
    ?array $extensionASTNodes = null
) {
    $this->enumClass = $enumClass;
    $reflection = new \ReflectionEnum($enumClass);

    /**
     * @var array<string, PartialEnumValueConfig> $enumDefinitions
     */
    $enumDefinitions = [];
    foreach ($reflection->getCases() as $case) {
        $enumDefinitions[$case->name] = [
            'value' => $case->getValue(),
            'description' => $this->extractDescription($case),
            'deprecationReason' => $this->deprecationReason($case),
        ];
    }

    parent::__construct([
        'name' => $name ?? $this->baseName($enumClass),
        'values' => $enumDefinitions,
        'description' => $description ?? $this->extractDescription($reflection),
        'astNode' => $astNode,
        'extensionASTNodes' => $extensionASTNodes,
    ]);
}