donquixote/callback-reflection

1.0.2 2019-05-04 12:46 UTC

README

Build Status

callback-reflection

A library that provides a unified callback interface, with implementations wrapping different callback types.

This way, static methods, closures/lambdas, class constructor calls and other php callables become interchangeable.

Example

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);