Implementation generator for interfaces and abstract classes.

Generates a class extending or implementing given type and forwards all calls to its methods to a given call handler.

Installation

composer require adawolfa/implement

Usage

interface MyService
{

	function foo();

}

$handler = new class implements Adawolfa\Implement\Handler {

	public function handle(Adawolfa\Implement\Call $call) : mixed
	{
		var_dump($call->method->name); // foo
		return 'bar';
	}

};

$generator      = new Adawolfa\Implement\Generator;
$implementation = $generator->generate(MyService::class);
$service        = $implementation->construct($handler);

var_dump($service->foo()); // bar

Supports