This is an old revision of the document!
PHP RFC: Add typehint accessors to ReflectionParameter
- Version: 1.0
- Date: 2014-05-29
- Author: Sara Golemon, pollita@php.net
- Status: Under Discussion
- First Published at: http://wiki.php.net/rfc/reflectionparameter.typehint
Proposal
This RFC proposes a new class ReflectionTypeAnnotation
to represent type information; currently this information is contained on the ReflectionParameter
class. This RFC adds methods to ReflectionParameter
to use this new class: ReflectionParameter::hasTypeAnnotation()
and ReflectionParameter::getTypeAnnotation()
. If the Return Type RFC is accepted it will then it will also use this new ReflectionTypeAnnotation
class.
The class ReflectionTypeAnnotation
also has __toString
method to make parsing function/method signatures and replicating them for mocking frameworks simpler; current mocking frameworks have to cast the ReflectionParameter to a string, then text parse that string to retrieve the information.
Proposed PHP Version(s)
5.next (5.7)
New Reflection class type: ReflectionTypeAnnotation
class ReflectionTypeAnnotation implements Reflector { public function __toString() { /* returns type annotation string (e.g. "array", "stdClass", etc...) */ } public function isArray() { /* true if the typehint is "array" */ } public function isCallable() { /* true if the typehint is "callable" */ } public function isNullable() { /* true if NULL is an acceptable value */ } }
Implementation and new unit test
Original proposal: https://github.com/sgolemon/php-src/commit/d352793a69eb549ffe4b04c4b5dedae2cd4ed831
Current proposal: https://github.com/sgolemon/php-src/compare/reflection.typehint