WordPress\AiClient\Common

AbstractEnum::determineClassEnumerationsprotected staticWP 0.1.0

Determines the class enumerations by reflecting on class constants.

This method can be overridden by subclasses to customize how enumerations are determined (e.g., to add dynamic constants).

Method of the class: AbstractEnum{}

No Hooks.

Returns

Array. string> Map of constant names to values.

Usage

$result = AbstractEnum::determineClassEnumerations( $className ): array;
$className(class-string) (required)
The fully qualified class name.

Changelog

Since 0.1.0 Introduced.

AbstractEnum::determineClassEnumerations() code WP 7.0

protected static function determineClassEnumerations(string $className): array
{
    $reflection = new ReflectionClass($className);
    $constants = $reflection->getConstants();
    // Validate all constants
    $enumConstants = [];
    foreach ($constants as $name => $value) {
        // Check if constant name follows uppercase snake_case pattern
        if (!preg_match('/^[A-Z][A-Z0-9_]*$/', $name)) {
            throw new RuntimeException(sprintf('Invalid enum constant name "%s" in %s. Constants must be UPPER_SNAKE_CASE.', $name, $className));
        }
        // Check if value is valid type
        if (!is_string($value)) {
            throw new RuntimeException(sprintf('Invalid enum value type for constant %s::%s. ' . 'Only string values are allowed, %s given.', $className, $name, gettype($value)));
        }
        $enumConstants[$name] = $value;
    }
    return $enumConstants;
}