adawolfa/implement

Implementation generator for interfaces and abstract classes.

Installs: 3

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/adawolfa/implement

1.0.0 2024-02-25 17:44 UTC

This package is auto-updated.

Last update: 2025-09-25 21:11:57 UTC


README

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

  • non-static methods
  • parameters passed by reference (write into call arguments, e.g. $call->arguments['param'] = 123;)
  • returning by reference
  • abstract methods from traits
  • multi-level inheritance
  • intersection & union types
  • attributes (copied from declaration to implementation)
  • documentation comments (ditto)
  • strict-types
  • memory cache (for development) & file cache (for production, opcache optimized)