WordPress\AiClient\Common
AbstractEnum::determineClassEnumerations
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() 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;
}