adawolfa / implement
接口和抽象类的实现生成器。
1.0.0
2024-02-25 17:44 UTC
Requires
- php: >=8.3
- nette/php-generator: ^4.1
Requires (Dev)
- phpstan/phpstan: ~1.10.59
- phpunit/phpunit: ~10.5.10
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优化)