On 16.10.14 06:39, Levi Morrison wrote:
>   - The design and accompanying section of reflection[3] has been
> rewritten entirely.
> 
>   [3]: https://wiki.php.net/rfc/returntypehinting#reflection

I've some comments about the Reflection API addition/changes:

1. > "Note that getReturnType will always return a ReflectionType
object, even if there is no return type declared."

That feels weird, TBH. Other parts of the Reflection-API don't do that,
they simply return false if I would call e.g. getParentClass() when
there's none.


2. > "This API was designed so you could use ReflectionType::getKind()
in a switch statement to cover all cases, rather than be forced to use
an if/else structure that calls isArray(), isCallable, etc like the
ReflectionParameter API does."

I don't like the deviation from the existing Reflection API. I'm not
saying it's perfect, but I fear a "haystack,needle vs. needle,haystack"
thing here and would prefer the existing convention for is*() methods.

I wouldn't see a conflict it providing both as I see the usefulness.


3. The new class is called "ReflectionType", shouldn't it be
"ReflectionReturnType" ?


4. Other reflection classes, e.g. ReflectionParameter provides "missing
link" methods, specifically I'm missing:

public ReflectionClass getDeclaringClass ( void );
public ReflectionFunctionAbstract getDeclaringFunction ( void );


5. I think, also like in ReflectionParameter, there should a direct
shortcut to the class, if provided (and not just the string name):

public ReflectionClass getClass ( void );


thanks,
- Markus

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to