S
Size: a a a
S
A
a

mixed|null|Namespaced\TestClass|\NameSpaced\Class|iterable<TestClass>|TestClass[]|iterable<iterable<TestClass>>|string
$types = preg_replace_callback(
"/(\\?[a-zA-Z]+_*\\?)+/i",
function($match) use ($classMap) {
return $classMap[$match[0]];
},
$types
);
a
|*a
СК

/(?P<full_class_name>(?P<namespace>\\?(?:[A-Z][A-Za-z0-9_]*\\)*)(?P<classname>[A-Z][A-Za-z0-9_]*))/a

/(?P<full_class_name>(?P<namespace>\\?(?:[A-Z][A-Za-z0-9_]*\\)*)(?P<classname>[A-Z][A-Za-z0-9_]*))/СК
namespace и classname, то разименуй группы (?P<...> на ?:), так регулярка хорошенько облегчитсяTC
TC
TC
TC
СК
a
**/ @var Long\Namespaced\DTO */
public $field;
a
СК
mixed и возможности перечислять типы позволит делать костыли на базовые типы типа Map => Map<string|int, mixed>a
mixed и возможности перечислять типы позволит делать костыли на базовые типы типа Map => Map<string|int, mixed>СК
a
A