if ($reflectionClass->
hasProperty($lowerCasedPropertyName =
lcfirst($propertyName)) || (!
$reflectionClass->
hasProperty($propertyName) && !
preg_match('/^[A-Z]{2,}/',
$propertyName))) { $propertyName =
$lowerCasedPropertyName;
} $properties[$propertyName] =
$propertyName;
} return $properties ?
array_values($properties) : null;
} public function getTypes(string
$class, string
$property, array
$context =
[]): ?array
{ if ($fromMutator =
$this->
extractFromMutator($class,
$property)) { return $fromMutator;
} if ($fromAccessor =
$this->
extractFromAccessor($class,
$property)) { return $fromAccessor;
} if ( ($context['enable_constructor_extraction'
] ??
$this->enableConstructorExtraction
) &&
$fromConstructor =
$this->
extractFromConstructor($class,
$property) ) {