Implementation generator for interfaces and abstract classes.

  • git clone https://klva.cz/src/php/implement.git
  • Hello world. 292f0cc, 25 Feb 2024
    src/
    tests/
    .editorconfig
    .gitattributes
    .gitignore
    composer.json
    LICENSE
    phpstan.neon
    README.md

    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