wandu / reflection
Reflection Extend Library.
Installs: 4 339
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 0
Requires
- php: >=5.5.0
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: 4.5.*
This package is not auto-updated.
Last update: 2022-04-02 04:46:42 UTC
README
Reflection Extend Library.
Installation
$ composer require wandu/reflection
Documents
ReflectionCallable
It supports 6 types of callable object. (ref. Wani Blog, Callable)
- string of function's name.
- string of class and static method's name.
- array of class and static method's name.
- array of object and method's name.
- object of class that has
__invoke
method. (ref. Magic Method__invoke
) - object of
Closure
.
and two more.
__call
magic method.__callStatic
magic method.
namespace Wandu\Reflection; use ReflectionFunctionAbstract; use Reflector; class ReflectionCallable extends ReflectionFunctionAbstract implements Reflector { /* Method */ public __construct( callable $callee ) public mixed __invoke( ...$parameters ) public string getCallableName() public boolean isMagicMethod() public int getReflectionType() public ReflectionFunctionAbstract getRawReflection() /* Inherited methods */ final private void ReflectionFunctionAbstract::__clone ( void ) public ReflectionClass ReflectionFunctionAbstract::getClosureScopeClass ( void ) public object ReflectionFunctionAbstract::getClosureThis ( void ) public string ReflectionFunctionAbstract::getDocComment ( void ) public int ReflectionFunctionAbstract::getEndLine ( void ) public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void ) public string ReflectionFunctionAbstract::getExtensionName ( void ) public string ReflectionFunctionAbstract::getFileName ( void ) public string ReflectionFunctionAbstract::getName ( void ) public string ReflectionFunctionAbstract::getNamespaceName ( void ) public int ReflectionFunctionAbstract::getNumberOfParameters ( void ) public int ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void ) public array ReflectionFunctionAbstract::getParameters ( void ) public ReflectionType ReflectionFunctionAbstract::getReturnType ( void ) public string ReflectionFunctionAbstract::getShortName ( void ) public int ReflectionFunctionAbstract::getStartLine ( void ) public array ReflectionFunctionAbstract::getStaticVariables ( void ) public bool ReflectionFunctionAbstract::hasReturnType ( void ) public bool ReflectionFunctionAbstract::inNamespace ( void ) public bool ReflectionFunctionAbstract::isClosure ( void ) public bool ReflectionFunctionAbstract::isDeprecated ( void ) public bool ReflectionFunctionAbstract::isGenerator ( void ) public bool ReflectionFunctionAbstract::isInternal ( void ) public bool ReflectionFunctionAbstract::isUserDefined ( void ) public bool ReflectionFunctionAbstract::isVariadic ( void ) public bool ReflectionFunctionAbstract::returnsReference ( void ) abstract public void ReflectionFunctionAbstract::__toString ( void ) }
(ref. ReflectionFunctionAbstract Class)
Example.
use Wandu\Reflection\ReflectionCallable; // 1. string of function's name. $reflection = new ReflectionCallable('yourfunctionname'); // OK $reflection = new ReflectionCallable('Your\OwnNamespace\yourfunctionname'); // with namespace also OK. // 2. string of class and static method's name. $reflection = new ReflectionCallable('Your\OwnNamespace\MyClass::callMyMethod'); // OK // 3. array of class and static method's name. $reflection = new ReflectionCallable(['Your\OwnNamespace\MyClass', 'callMyMethod']); // OK // 4. array of object and method's name. $reflection = new ReflectionCallable([new Your\OwnNamespace\MyClass(), 'callMyMethod']); // OK // 5. object of class that has `__invoke` method. $reflection = new ReflectionCallable(new Your\OwnNamespace\ClassWithInvoke()); // OK // 6. object of `Closure` $reflection = new ReflectionCallable(function ($param1, $param2) { /* do something */ }); $reflection->getNumberOfParameters(); // return 2 // 7. __call $reflection = new ReflectionCallable([new Your\OwnNamespace\HasCallClass, 'anything']); $reflection->getNumberOfParameters(); // always return 0 $reflection->getNumberOfRequiredParameters(); // always return 0 $reflection->getParameters(); // always return [] $reflection->getShortName(); // return 'anything' $reflection->getName(); // return 'anything' // 8. __callStatic $reflection = new ReflectionCallable([Your\OwnNamespace\HasCallStaticClass::class, 'anything']); $reflection->getNumberOfParameters(); // always return 0 $reflection->getNumberOfRequiredParameters(); // always return 0 $reflection->getParameters(); // always return [] $reflection->getShortName(); // return 'anything' $reflection->getName(); // return 'anything'