WordPress\AiClient\Common

AbstractEnum::determineClassEnumerations │ protected static │ WP 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).

Метод класса: AbstractEnum{}

Хуков нет.

Возвращает

array<string, string>. Map of constant names to values.

Использование

$result = AbstractEnum::determineClassEnumerations( $className ): array;
$className(class-string) (обязательный)
The fully qualified class name.

Список изменений

С версии 0.1.0 Введена.

Код AbstractEnum::determineClassEnumerations() WP 7.1.4

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;
}