wandu/reflection
最新稳定版本:v0.3.0
Composer 安装命令:
composer require wandu/reflection
包简介
Reflection Extend Library.
README 文档
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
__invokemethod. (ref. Magic Method__invoke) - object of
Closure.
and two more.
__callmagic method.__callStaticmagic 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'
统计信息
- 总下载量: 4.35k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-07-29