donquixote/callback-reflection

1.0.2 2019-05-04 12:46 UTC

README

Build Status

callback-reflection

一个提供统一回调接口的库,通过封装不同的回调类型实现。

这样,静态方法、闭包/lambda、类构造函数调用以及其他PHP可调用对象可以互换使用。

示例

class C {
  private $x;
  private $y;
  public function __construct($x, $y) {
    $this->x = $x;
    $this->y = $y;
  }
}

// Callback from class constructor.
$callback = CallbackReflection_ClassConstruction::create(C::class);

// Get reflection parameters.
$parameters = $callback->getReflectionParameters();

// Invoke the callback to create a class instance.
$instance = $callback->invokeArgs(['x', 'y']);

// Generate a PHP statement.
$codegenHelper = new CodegenHelper();
$php = $callback->argsPhpGetPhp(["'x'", "'y'"], $codegenHelper);