adawolfa/implement

接口和抽象类的实现生成器。

1.0.0 2024-02-25 17:44 UTC

This package is auto-updated.

Last update: 2024-09-25 19:01:51 UTC


README

接口和抽象类的实现生成器。

生成一个扩展或实现给定类型的类,并将所有调用转发到指定的调用处理器的方法。

安装

composer require adawolfa/implement

使用方法

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

支持

  • 非静态方法
  • 按引用传递的参数(写入调用参数,例如 $call->arguments['param'] = 123;
  • 按引用返回
  • 从特质中返回抽象方法
  • 多层继承
  • 交集 & 联合类型
  • 属性(从声明复制到实现)
  • 文档注释(同样如此)
  • 严格类型
  • 内存缓存(开发用)& 文件缓存(生产用,opcache优化)