Currently there is no (documented) way to directly create a
\ReflectionType object.
The class has no documented constructor.
I propose that static factory methods shall be added for this purpose.
This will be useful for code that wants to dynamically create and pass
around reflection type objects.
/** @var bool $allowsNull */
$t1 = \ReflectionType::fromBuiltinType('string', $allowsNull);
$t2 = \ReflectionType::fromClassName(\stdClass::class, $allowsNull);
assert(true === $t1->isBuiltin());
assert(false === $t2->isBuiltin());
assert('string' === $t1->getName());
assert(\stdClass::class === $t2->getName());
To be discussed:
- method names
- Whether to return ReflectionNamedType or ReflectionType or something else.
(I don't find ReflectionNamedType documented in
http://php.net/manual-lookup.php?pattern=ReflectionNamedType)
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php