$defaultValue =
$reflectionClass->
getDefaultProperties()[$property] ?? null;
if (null ===
$defaultValue) { return null;
} $type = \
gettype($defaultValue);
$type =
static::MAP_TYPES
[$type] ??
$type;
return [new Type($type,
$this->
isNullableProperty($class,
$property), null, Type::BUILTIN_TYPE_ARRAY ===
$type)];
} private function extractFromReflectionType(\ReflectionType
$reflectionType, \ReflectionClass
$declaringClass): array
{ $types =
[];
$nullable =
$reflectionType->
allowsNull();
foreach (($reflectionType instanceof \ReflectionUnionType ||
$reflectionType instanceof \ReflectionIntersectionType
) ?
$reflectionType->
getTypes() :
[$reflectionType] as $type) { if (!
$type instanceof \ReflectionNamedType
) { // Nested composite types are not supported yet.
return [];
}