Hi all, https://wiki.php.net/rfc/allow_casting_closures_into_single-method_interface_implementations > > https://wiki.php.net/rfc/allow-closures-to-declare-interfaces-they-implement > https://wiki.php.net/rfc/structural-typing-for-closures
Thanks Larry for the nice introduction to those ideas. Personally, I feel like going with adding Closure::castTo() might provide the most immediate benefit. I expanded the rationale on the corresponding RFC and added more examples. I'd appreciate it if all of you reading could have another look to see if that helps to better understand the proposal. strtr(...)->castTo(TranslatableInterface::class) is one example of RFC #1 function ($message, $parameters) implements TranslatableInterface is RFC #2 Both RFCs nicely combine together to cover many cases of typed callabled. Then RFC#3 is a bit more adventurous (according to our understanding) but still desirable as it's essentially about allowing the engine to tentatively call castTo() from RFC#1 when a closure is passed as argument while an interface is expected. We're now wondering if we should start spending time on prototype implementations for #1 and/or #2, and #3 in this order. Should we consider a preliminary vote on the topic? Nicolas