技术工作 / closure-caster
将闭包转换为单方法实现
dev-main
2023-04-25 10:09 UTC
Requires
- symfony/var-exporter: ^6.2.10
Requires (Dev)
- phpunit/phpunit: ^10.2
This package is auto-updated.
Last update: 2024-08-25 12:55:21 UTC
README
此软件包提供了一个名为 closure_cast_to()
的函数,允许将闭包转换为实现单方法接口的对象。
想象你有一个这样的接口
interface TranslatorInterface { public function translate(string $message, $parameters = []): string; }
而 strtr()
函数是身份转换的正确实现。你可以这样获取 TranslatorInterface
的实例,它委托给 strtr()
$identityTranslator = closure_cast_to(strtr(...), TranslatorInterface::class);
此软件包旨在作为 这个RFC 的概念验证实现,该RFC建议为原生的 Closure
类添加一个新的 castTo
方法,这样前面的例子可以写成这样
$identityTranslator = strtr(...)->castTo(TranslatorInterface::class);