技术工作/closure-caster

将闭包转换为单方法实现

dev-main 2023-04-25 10:09 UTC

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);